如何打开网页并运行一些javascript函数?

时间:2009-10-24 08:04:20

标签: javascript

您好我想打开一个页面然后运行一些javascript函数。我的问题是,一旦我打开窗口,它就会停止运行代码:

javascript:
location=("http://www.myTestPage.com/");
showForm();
document.getElementById("txtEmail").value="test@hotmail.com";
submit();

5 个答案:

答案 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();

添加:

我认为您希望将表单提交到服务器端进程并同时导航到新位置。几种方法:

  1. 提交表单,让响应重定向到所需位置

  2. 异步提交表单,然后导航到新页面

答案 4 :(得分:1)

如果您在新窗口中打开第二页该页面托管在同一个域中(因为JavaScript具有相同的域安全策略),这只能在JavaScript中使用;否则,你将不得不像其他人建议的那样做,让目标页面自己处理它。