gpt4 book ai didi

javascript - Mozilla 中的 iFrame URL

转载 作者:行者123 更新时间:2023-12-03 04:44:57 25 4
gpt4 key购买 nike

我需要帮助获取 mozilla 中 iFrame 元素的 URL。虽然这段代码在 IE 中工作得很好,但在 mozilla 中却不起作用。

<iframe id="frame" onload="myFunction()" src="./upload/" ></iframe>

<script type="text/javascript" >
function myFunction()
{
var a = document.getElementById("frame").contentWindow.location.href;
alert(a)
}
</script>

你能告诉我如何让它在 mozilla 中运行吗?我不需要 iframe 的 src,但需要根据 iframe 位置更改 URL。网页和 iframe 内容都位于同一域中。

我发现这两个代码只能在 IE 中完美运行:

document.getElementById("frame").contentWindow.location.href;
document.frames['frame'].location.pathname;

此外,没有 iframe 的 location.pathnamelocation.href 也可以在 Chrome 和 Mozilla 中使用。但如果我添加 document.getElementById("frame")document.frames['frame'] 它就会停止在 chrome 和 mozilla 中工作。

最佳答案

您的代码,我在 FireFox 52.0.1 和 IE 11 中对此进行了测试。

<iframe id="frame" onload="myFunction()" src="http://stackoverflow.com/questions/42905168/iframe-url-in-mozilla/42905409" ></iframe>
<script type="text/javascript">
window.addEventListener("load", function(){
document.getElementById('frame').onload = myFunction;
});
function myFunction() {
var a = document.getElementById("frame").src;
var parser = document.createElement('a');
parser.href = a;
parser.protocol; // => "http:"
parser.hostname; // => "stackoverflow.com"
parser.port; // => "80"
parser.pathname; // => "/questions/42905168/iframe-url-in-mozilla/42905409"
parser.search; // => ""
parser.hash; // => ""
parser.host; // => "stackoverflow:80"
alert(a);
}
</script>

IE 存在一个有趣的问题,无法通过 Javascript 计算出 onload 事件。

获取src

window.addEventListener("加载", function(){
警报(document.getElementById(“frameid”).src);
});

添加window.addEventListener以确保DOM完全加载。

设置src document.getElementById('frameid').setAttribute("src",someurlhere);

关于javascript - Mozilla 中的 iFrame URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42905168/

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