我试图重定向到另一个站点,然后在其上运行代码。
function gotonewpage() {
window.location.href = "WEBSITE"
x = document.getElementById("s")
}
答案 0 :(得分:1)
除非您控制要重定向到的站点,否则这是不可能的。
答案 1 :(得分:0)
恐怕这是不可能的,我认为这样做的唯一方法是通过反映的xss(假设这不是您的网站)
答案 2 :(得分:0)
如上所述,您必须控制另一页。如果在同一站点上,则可以在一个框架中打开它。 iframe |新窗口和javascript可以与该框架通信,但是您不能关闭当前窗口(调用该窗口时脚本消失)。如果域与“完全匹配”不匹配,则会生成错误。您无法在域和该域的子域之间进行通信。
您的代码执行以下操作:
function gotonewpage() {
window.location.href = "WEBSITE"
// current window with script goes away.
x = document.getElementById("s") // this code never sees the light of day.
}
此代码访问同一域中iframe的元素。
<iframe id="frame" src="contents.htm"></iframe>
MySite=document.getElementById("frame");
x = MySite.contentDocument.getElementById("s");
对于弹出式换向是通过消息。
MyChildMySite = window.open("website");
MyChildMySite.ProcessParentMessage('Message to the child');
在“子级”页面上,相同的域
function ProcessParentMessage(message) {
window.opener.ProcessChildMessage(document.getElementById("s"));
}
并返回父页面,相同域
function ProcessChildMessage(s) {
x = s;
// not sure what you want to do from here.
}
让我补充一下,浏览器非常重视安全性;如果您在实施中发现安全错误,请与他们联系以获取可能的奖励。
答案 3 :(得分:0)
好吧,window.location.href会重新加载应用程序,其余的代码将永远没有机会执行它。
就像在函数中的return关键字之后使用语句一样。
function sum(a, b) {
var sum;
return sum;
sum = a + b; // this will never execute
}
但是你能做什么, 重定向发生后,您可以添加此
x = document.getElementById("s")
在发生重定向的文件中。但恐怕您也必须在新文件中添加ID为s的元素。