在父网页的 iframe 中运行 JavaScript
Posted
技术标签:
【中文标题】在父网页的 iframe 中运行 JavaScript【英文标题】:Running JavaScript in an iframe on the parent webpage 【发布时间】:2016-09-07 13:43:26 【问题描述】:我有一个需要倒数计时器的网页,但倒数计时器的 javascript 代码是在 iframe
中与其他页面内容一起生成的。我需要使用 Javascript 将此内容推送到父框架中:
document.getElementById('contentarea').innerhtml =
"Please Wait... Countdown is loading FOO";
而FOO的一部分是倒计时码……
<script>
var upgradeTime = 186000; //no of seconds
var seconds = upgradeTime;
function timer()
var days = Math.floor(seconds/24/60/60);
//The Code doesn't end here but let me not bore anyone
</script>
如何实现这一点,以便注入的 JavaScript 代码在父页面上运行?
【问题讨论】:
如果使用相同的来源,你可以使用parent
,但听起来你应该只使用script
标签并完全放弃iframe
。
@AlexanderO'Mara 他们说他们也在iframe
中加载内容。
@4castle 你也可以用 JavaScript 加载内容,但是这个问题和具体问题还不清楚。
请记住,如果 iframe
引用不同的域或 HTTP 协议,这将不起作用。它会触发一个安全错误,认为它是 XSS。
他们都来自同一个域@4castle
【参考方案1】:
在iframe
的JavaScript 中使用window.parent
。
parent.document.getElementById('contentarea').innerHTML =
"Please Wait... Countdown is loading FOO";
【讨论】:
是的,附加父级会起作用,但这不是真正的问题。这里的问题是将 FOO 替换为将在父页面上运行的 javascript 代码。谢谢 @Ekene 预期的 HTML 输出示例是什么?本质上,所有输出语句都是相同的(就像您正在修改当前页面一样),但前面有parent
。
预期的输出应该是这样的:code
Please Wait... 正在加载倒计时 code
不需要将 以上是关于在父网页的 iframe 中运行 JavaScript的主要内容,如果未能解决你的问题,请参考以下文章
为啥将 <script> 附加到动态创建的 <iframe> 似乎会在父页面中运行脚本?