私は自分のウェブサイトに取り組んでおり、localhost WAMP サーバーでテストしています。スライドする Facebook のようなボックスを表示するためのホームページに JavaScript を含めました (mootools フレームワークを使用)。javascript は、Chrome、Firefox、IE9 で正常に動作しています。しかし、Opera でスライド ボックスが表示されません。
javascript フォルダー (設定 -> コンテンツ -> Javascript オプション) を追加した後、エラーをデバッグしようとしましたが、次のエラーが表示されます。(JavaScript ファイルをローカル ドライブから Opera コンテンツ拡張に含めると、スライドする Facebook のようなボックスが表示されますが、それでも問題がわかりません。)
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
+ '&width=292&height=480&colorscheme=light&show_faces=true&border_color=grey'
+ border
+ '&stream=true&header=false&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 ファイルに問題があるようです。ただし、他のすべてのブラウザでは問題なく動作しているため、何が問題なのかわかりません。これはブラウザ固有の問題ですか、それとも何か不足していますか。