您好我想打开一个页面然后运行一些javascript函数。我的问题是,一旦我打开窗口,它就会停止运行代码:
javascript:
location=("http://www.myTestPage.com/");
showForm();
document.getElementById("txtEmail").value="test@hotmail.com";
submit();
答案 0 :(得分:4)
你做不到。问题是每个页面都被加载到它自己的逻辑窗口中(即使该窗口占用浏览器中与前一页面相同的客户区域)。每个窗口都在自己的上下文中运行脚本。通常在更换窗口时,任何正在运行的脚本都会终止,即使不是,我怀疑您希望位置分配后的代码对新内容进行操作。
您需要目标页面为您运行代码。如果页面是由PHP或ASP之类的动态生成的,那么您可以使用查询字符串来指定一个文件,该页面应该指向它放置在正文内容底部的脚本块的SRC。
答案 1 :(得分:2)
这是因为你的javascript函数是在window对象中声明的。通过调用location =你可以销毁当前窗口对象及其中的所有函数。毕竟你不能在一个窗口中声明函数,以在同一个窗口中运行,但在另一个位置运行。你所能做的就是打开一个新窗口。
答案 2 :(得分:2)
这是因为页面已转移到新位置。在移动到其他位置之前先执行您的javascript。
答案 3 :(得分:1)
location=("http://www.myTestPage.com/")
开始导航到新页面。您打算从哪里调用showForm()
?如果它是当前页面,我不明白为什么你想这样做?
接下来虽然我怀疑你想打开一个新窗口,是吗?
window.open("http://www.myTestPage.com/");
showForm();
document.getElementById("txtEmail").value="test@hotmail.com";
submit();
添加:
我认为您希望将表单提交到服务器端进程并同时导航到新位置。几种方法:
提交表单,让响应重定向到所需位置
异步提交表单,然后导航到新页面
答案 4 :(得分:1)
如果您在新窗口中打开第二页和该页面托管在同一个域中(因为JavaScript具有相同的域安全策略),这只能在JavaScript中使用;否则,你将不得不像其他人建议的那样做,让目标页面自己处理它。