我有一个bookmarklet,它将div加载到当前页面中,并在其中放置一个iframe。这个小书签在除IE9之外的所有浏览器中都像梦一样工作。甚至可以在早期版本的IE中工作。
我正在使用下面的bookmarklet框架:
http://idc.anavallasuiza.com/project/bookmarklets其他人在这里也遇到过类似的问题(与bookmarklet无关):
https://forum.jquery.com/topic/retrieved-html-data-type-with-jquery-ajax-in-ie9-scripts-tags-sources-could-not-be-loaded到目前为止,我了解到我的书签小程序的jQuery不能在IE9中正确加载。
书签小程序试图加载它自己的jQuery,以便在书签小程序初始化时可以运行某些效果,并简化编程。
iFrame页面还会加载jQuery (如果没有它,iframe中的内容将无法正常工作)。
我使用的是最新的jQuery:
http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js我想知道为什么IE9会导致这些脚本错误,而其他浏览器都不会?为什么无法在IE9中正确加载jQuery?
任何洞察力都将不胜感激。
发布于 2012-03-02 14:49:46
我刚刚花了几个小时来解决这个问题,最终找到了一个我认为会对你有帮助的解决方案。
以下是给我带来问题的代码的简化版本:
$frames = $(*html_including_frames_here*);
$div = $('<div></div>');
$div.append($frames);
$('body').append($div);**将一个或多个帧加载到不在DOM中的div中,然后将该div加载到DOM中会导致我的案例中的所有问题。框架没有按照它们应该的方式加载JS脚本,然后所有内容(jQuery、JSON等)都是未定义的。
另一方面,这是可行的:
$frames = $(*html_including_frames_here*);
$div = $('<div></div>');
$('body').append($div);
$div.append($frames);这里唯一的区别是,我首先将div放在dom中,然后再将帧加载到其中。不知何故,这一切都变得不同了。
发布于 2012-01-04 17:45:19
谢谢你的问题,我也有同样的问题。我第一次通过从jquery.com ( http://code.jquery.com/jquery-1.7.1.js )加载jquery修复了这个问题。然后IE9加载它。也许微软屏蔽了一些google-apis?非常有趣..。
https://stackoverflow.com/questions/7821718
复制相似问题