gpt4 book ai didi

javascript - 将本地 javascript 插入 iframe html

转载 作者:行者123 更新时间:2023-12-03 06:02:42 29 4
gpt4 key购买 nike

我正在尝试将一些 HTML 代码放入 iframe 中来呈现数据。 Everythink 工作正常,但是当我想将任何 java 脚本放入 iframe 中时,没有结果。看来 iframe 无法看到任何本地 javascript。

这是一个代码:

<html>
<head>
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<script src="testJSON.js"></script>
</head>
<body>
<iframe id="frame"></iframe>
<p id="demo"></p>
<script src="names.js"></script>
<script type="text/javascript">
$("#frame").attr(
"src", "data:text/html;charset=utf-8," +
"<html><head>"+
"<script src='jquery.min.js'><"+"/script>"+
"<script src='testJSON.js'><"+"/script></head>"+
"<body><p id='demo'></p>"+
"<script src='name.js'><"+"/script>"+
"<h1>Test</h1>"+
"</body></html>"
);
</script>
</body>
</html>

testJSON.js:

var dane = '{ "names" : [' +
'{ "firstName":"Ana" , "lastName":"Doe" },' +
'{ "firstName":"Bill" , "lastName":"Smith" },' +
'{ "firstName":"Dory" , "lastName":"Jones" } ]}';

names.js:

var nameID =function() {
return 2;
};

obj = JSON.parse(dane);
document.getElementById("demo").innerHTML =
obj.names[nameID()].firstName + " " + obj.names[nameID()].lastName;

有人能解决这个问题吗?

谢谢

最佳答案

出于安全原因,我认为 DataURI 不能包含外部脚本,但我找不到重复的 SO 帖子来证实这一点。无论如何,将 html 和脚本 document.write 到框架中。这有效

$("#frame")[0].document.contentDocument.write(
"<html><head>"+
"<script src='jquery.min.js'><\/script>"+
"<script src='testJSON.js'><\/script></head>"+
"<body><p id='demo'></p>"+
"<script src='name.js'><\/script>"+
"<h1>Test</h1>"+
"</body></html>"
);
$("#frame")[0].contentDocument.close();

您可能需要完全限定外部文件的 URL

关于javascript - 将本地 javascript 插入 iframe html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39689444/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com