我有一个包含jQuery的iframe内容,而iframe中内容的jQuery部分在IE中不起作用(未使用的部分jQuery工作正常,一切在Chrome和Firefox中运行良好)。
以下是代码:
<!DOCTYPE html>
<html>
<head>
<title>iframe content</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<h1>This heading is showing up just fine.</h1>
<div id="jQuery-generated-content">
<!-- content dynamically generated by jQuery plugin This part is not showing in iframe in IE -->
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"> </script>
<script src="pathTojQueryPlugin.js"></script>
<script type="text/javascript">
jQuery.codeToInitiatePlugin
</script>
</body>
</html>
我尝试在主体标记之后插入jQuery代码,包含相对路径和绝对路径,但没有运气。如果有人知道这方面的任何变通办法或者是什么导致IE不能读取jQuery,我将不胜感激。
提前致谢!
答案 0 :(得分:5)
前段时间我也遇到过同样的问题。导致该问题是因为IE无法从iframe中访问jquery库,因此无法读取jquery代码。唯一的解决方法是将jquery代码转换为javascript。
更新
使用不同版本的jQuery也可以解决问题。或者可以使用不同的jQuery库。
答案 1 :(得分:4)
来自另一个SO问题:
这是一个合法的jQuery 1.10.1错误:http://bugs.jquery.com/ticket/13980。
就我而言,使用......
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
..解决了这个问题。它也恰好是与父页面相同的版本(感谢Avigon)。
答案 2 :(得分:3)
可能你已经用其他方式解决了这个问题,但万一其他人也发现了这个帖子。
这是一个可能在某些情况下有用的小“技巧” 在使用jQuery之前在iframe中添加这个:
if (window.jQuery) {
jQuery = window.jQuery;
$ = window.jQuery;
}
但是包含iframe的页面必须包含jQuery。 (最好是同一版本)
答案 3 :(得分:3)
正如hotate17在评论中指出的那样,实际的答案是他/她正在从CDN加载jQuery资产,在这种情况下是谷歌的CDN。加载来自同一服务器的jQuery资产,因此与iFrame源相同的URL修复了他的问题,我也是,我感谢hotate17!