Opera浏览器上的Javascript错误“无法将m转换为对象”

时间:2013-03-28 14:28:38

标签: javascript html facebook web mootools

我正在我的网站上工作并在localhost WAMP服务器上进行测试。我在我的主页上添加了一个javascript来显示滑动的facebook likebox(使用mootools框架)。 javascript在Chrome,Firefox,IE9上正常运行。但是,我看不到Opera上的幻灯片盒。

我在添加javascript文件夹(首选项 - >内容 - > Javascript选项)后尝试调试错误,我收到以下错误。 (一旦我将本地驱动器中的javascript文件包含到Opera内容扩展中,我可以看到滑动的facebook likebox,但我仍然无法弄清楚问题。)

Uncaught exception: TypeError: Cannot convert 'm' to object
Error thrown at line 1, column 47082 in <anonymous function: bottom>(n, m) in http://ajax.googleapis.com/ajax/libs/mootools/1.2.5/mootools-yui-compressed.js:
    m.appendChild(n);
called from line 1, column 51362 in <anonymous function: inject>(n, m) in http://ajax.googleapis.com/ajax/libs/mootools/1.2.5/mootools-yui-compressed.js:
    a[m||"bottom"](this,document.id(n,true));
called from line 19, column 1 in <anonymous function: FBSideLike.init>() in http://localhost/Demola_Template/media/js/fb-sidelike.js:
    var box = new Element('div', {

这是我的javascript看起来像调用mootools-yui-compressed.js

var FBSideLike = {};

FBSideLike.init = function() {

    var scr = $$('script[fbpage]');

    if (scr.length == 1) {
        scr = scr[0];
        var fbpage = scr.get('fbpage');
    } else {
        return;
    }

    var border = scr.get('bordercolor') || '3b5997';
    var image  = scr.get('image') || 'plain';
    var base   = scr.get('src').replace('fb-sidelike.js', '');

    var box = new Element('div', {
        id: 'fb-side-like',
        styles: {
            backgroundImage: 'url(' + base + 'fb-sidebar-' + image + '.png)',
            backgroundRepeat: 'no-repeat',
            position: 'fixed',
            top: '12%',
            right: -292,
            width: 322,
            height: 200
        }
    }).inject(document.body);

    var like = new Element('div', {
        styles: {
            position: 'absolute',
            left: 30,
            width: 292,
            height: 480,
            background: '#FFF'
        }
    }).inject(box);

    var toggle = function(dir) {
        box.tween('right', dir < 0 ? -1 : -292);
    }

    like.set('html', '<iframe src="//www.facebook.com/plugins/likebox.php?href=http%3A%2F%2Fwww.facebook.com%2F'
                    + fbpage
                    + '&amp;width=292&amp;height=480&amp;colorscheme=light&amp;show_faces=true&amp;border_color=grey'
                    + border
                    + '&amp;stream=true&amp;header=false&amp;appId=************"'
                    + 'scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:292px; height:480px;" allowTransparency="true"></iframe>');

    box.set('tween', {
        duration: 550,
        transition: Fx.Transitions.Pow.easeInOut
    }).addEvents({
        'mouseenter': function() { toggle(-1); },
        'mouseleave': function() { toggle(1); }
    });
}

if (typeof(MooTools) == 'undefined') {
    (function() {
        var mt = document.createElement("script");
        mt.type = "text/javascript";
        mt.src = ("https:" == document.location.protocol ? "https" : "http") + "://ajax.googleapis.com/ajax/libs/mootools/1.2.5/mootools-yui-compressed.js";
        mt.async = true;
        mt.onload = FBSideLike.init;
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(mt, s);
    })();
} else {
    window.addEvent('load', FBSideLike.init);
}

在我的主页上,我添加了javascript

<script type="text/javascript" src="media/js/fb-sidelike.js" fbpage='*******'></script>

查看错误消息,看起来问题出现在mootools-yui-compressed.js javascript文件中。但是,我无法弄清楚出了什么问题,因为它在其他所有浏览器上运行良好。这是浏览器特定的问题还是我缺少的东西。

0 个答案:

没有答案