使用 document.write() 将 html 写入 iframe,但 jquery 在 IE9 中不起作用
use document.write() to write html in to iframe, but jquery not working in IE9
我在本地系统中存储了一个 html 页面,我尝试获取内容然后写入 iframe。
<html>
<head>
<title></title>
<script src="js/jquery.min.js" type="text/javascript"></script>
<link href="styles/myStlye.css" rel="stylesheet" type="text/css" />
</head>
<body><button id="buttonClick">Click Me</button></body>
<script>
$(document).ready(function(){
$("#buttonClick").click(function(){
alert("Button clicked.");
});
});
</script>
</html>
我使用 document.write() 将 html 代码写入 iframe,但页面加载时出现错误 SCRIPT5009: '$' is undefined在 IE9 中,但在 google chrome 和 firefox 中工作正常。
问题可能是 IE 在加载 jquery 之前正在执行 JS 代码,请尝试动态加载它并监听 onload:
<html>
<head>
<title></title>
<link href="styles/myStlye.css" rel="stylesheet" type="text/css" />
</head>
<body>
<button id="buttonClick">Click Me</button>
<script>
var script = document.createElement("script");
script.src = "js/jquery.min.js";
script.onreadystatechange = function () {
if (this.readyState == 'complete' || this.readyState == 'loaded') {
$("#buttonClick").click(function () {
alert("Button clicked.");
});
}
};
script.onload = function () {
$("#buttonClick").click(function () {
alert("Button clicked.");
});
};
document.querySelector('body').appendChild(script);
</script>
</body>
</html>
(代表问题作者发布解决方案).
感谢 Ralph Najm 的回答,但我已经找到了另一种我觉得更合适的方法来解决这个问题。
等到页面加载后再执行脚本。下面是示例:
<html>
<head>
<title></title>
<script src="js/jquery.min.js" type="text/javascript"></script>
<link href="styles/myStlye.css" rel="stylesheet" type="text/css" />
</head>
<body><button id="buttonClick">Click Me</button></body>
<script>
window.addEventListener('load', function() {
$(document).ready(function(){
$("#buttonClick").click(function(){
alert("Button clicked.");
});
});
});
</script>
</html>
我在本地系统中存储了一个 html 页面,我尝试获取内容然后写入 iframe。
<html>
<head>
<title></title>
<script src="js/jquery.min.js" type="text/javascript"></script>
<link href="styles/myStlye.css" rel="stylesheet" type="text/css" />
</head>
<body><button id="buttonClick">Click Me</button></body>
<script>
$(document).ready(function(){
$("#buttonClick").click(function(){
alert("Button clicked.");
});
});
</script>
</html>
我使用 document.write() 将 html 代码写入 iframe,但页面加载时出现错误 SCRIPT5009: '$' is undefined在 IE9 中,但在 google chrome 和 firefox 中工作正常。
问题可能是 IE 在加载 jquery 之前正在执行 JS 代码,请尝试动态加载它并监听 onload:
<html>
<head>
<title></title>
<link href="styles/myStlye.css" rel="stylesheet" type="text/css" />
</head>
<body>
<button id="buttonClick">Click Me</button>
<script>
var script = document.createElement("script");
script.src = "js/jquery.min.js";
script.onreadystatechange = function () {
if (this.readyState == 'complete' || this.readyState == 'loaded') {
$("#buttonClick").click(function () {
alert("Button clicked.");
});
}
};
script.onload = function () {
$("#buttonClick").click(function () {
alert("Button clicked.");
});
};
document.querySelector('body').appendChild(script);
</script>
</body>
</html>
(代表问题作者发布解决方案).
感谢 Ralph Najm 的回答,但我已经找到了另一种我觉得更合适的方法来解决这个问题。
等到页面加载后再执行脚本。下面是示例:
<html>
<head>
<title></title>
<script src="js/jquery.min.js" type="text/javascript"></script>
<link href="styles/myStlye.css" rel="stylesheet" type="text/css" />
</head>
<body><button id="buttonClick">Click Me</button></body>
<script>
window.addEventListener('load', function() {
$(document).ready(function(){
$("#buttonClick").click(function(){
alert("Button clicked.");
});
});
});
</script>
</html>