gpt4 book ai didi

javascript - 来自 URL 的 iframe 源

转载 作者:可可西里 更新时间:2023-11-01 14:49:39 26 4
gpt4 key购买 nike

我们的网站上有一个页面可以加载附属商店的 iFrame。我们希望发送一封带有链接的电子邮件,这些链接将加载我们网站上的页面,其中包含 iFrame 中特色产品的详细信息。我下面的代码可以正常工作,但如果用户直接转到我们网站上的页面 - 不使用 URL 中定义的页面元素的链接,它就会中断。

不确定这是否重要,但 iframe 源位于完全不同的域中,我无法控制它。

这有效:http://www.mysite.html/thispage.aspx?id=16500&page=http://myiframesource.com/detail/0307959473

这不起作用:http://www.mysite.html/thispage.aspx?id=16500 (iframe src 更改为“undefined”onload)

这是我目前所拥有的:

<script language="javascript">
window.onload = updateiframe; //event handler (calls the function)

function updateiframe() {
function getUrlVars() {
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');

for(var i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}

return vars;
}

var hash = getUrlVars();
var myiframepage = decodeURIComponent(hash['page']);
document.getElementById('myiframe').src = myiframepage;
}
</script>

<iframe id="myiframe" name="myiframe" src="myiframesource.com" width="555" height="2000" border="0" style="border: 0px solid #ffffff;"></iframe>

预先感谢您的帮助!

最佳答案

无效的 URL 缺少“页面”参数。

您的 javascript 正在从 URL 中获取所有参数并将它们放入一个数组中。接下来它会尝试在该数组中找到“page”参数:

var myiframepage = decodeURIComponent(hash['page']);

显然缺少。因此,您的 iframe 的“未定义”来源。

您可以在您的 javascript 中添加一小部分来检查正确的“id”参数,如果它是 16500 而您缺少“page”参数,您可以执行 javascript 重定向:

var hash = getUrlVars();
var myiframepage = decodeURIComponent(hash['page']);
if(typeof(myiframepage) == 'undefined') {
var id = decodeURIComponent(hash['id']);
if(typeof(id) != 'undefined' && id == '16500') {
window.location.replace('http://www.mysite.html/SiteText.aspx?id=16500&page=http://myiframesource.com/detail/0307959473');
}
}
else {
document.getElementById('myiframe').src = myiframepage;
}

上面显示的这一小段代码应该照顾那些没有您电子邮件中的链接并直接浏览到该页面的人...

并且要小心传递这样的数据。通过提供具有不同页面参数的 URL,人们可以轻松劫持您的 iframe 并在其中显示恶意网站!

关于javascript - 来自 URL 的 iframe 源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22192162/

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