Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从另一个页面执行在一个页面中编写的JavaScript?_Javascript_Asp.net - Fatal编程技术网

如何从另一个页面执行在一个页面中编写的JavaScript?

如何从另一个页面执行在一个页面中编写的JavaScript?,javascript,asp.net,Javascript,Asp.net,如何从另一个aspx页面执行在一个aspx页面中写入的操作?您不能这样做。不要将JavaScript写入页面,而是将其写入.js文件(即:script.js),然后使用脚本标记引用.js文件: <script type="text/javascript" src="script.js"></script> 在一个页面中,在隐藏的IFrame中打开另一个页面,并在隐藏的IFrame中以document.getElementById('targetFrame').conte

如何从另一个aspx页面执行在一个aspx页面中写入的操作?

您不能这样做。不要将JavaScript写入页面,而是将其写入.js文件(即:script.js),然后使用脚本标记引用.js文件:

<script type="text/javascript" src="script.js"></script>

在一个页面中,在隐藏的IFrame中打开另一个页面,并在隐藏的IFrame中以document.getElementById('targetFrame').contentWindow.targetFunction()的形式执行javascript代码


注意:这两个页面应该来自同一个域,否则会出现XSS问题。

简单的回答是您不能

我不知道你为什么要问这个问题,但是如果你的动机仅仅是重用JavaScript代码,那么你实际上可以将代码分解成一个单独的.js文件,并通过执行以下操作从不同的页面调用它

<script type="text/javascript" src="your_javascript_file.js"></script>


在这些页面中。

只有在页面之间存在父子关系时才可能。例如,如果A.aspx是您的父页面,并且您使用javascriptwindow.open()打开页面B.aspx,那么B.aspx将是子页面。然后,您可以使用window.opener而不是我之前发布的window.parent从B.aspx调用.aspx javascript函数


谢谢。

如果您使用的是
窗口。open
要打开新窗口,您可以使用
窗口。opener
对象从新窗口获取对父对象的引用,
窗口。open
本身将返回对打开页面的引用。例如:

A页:

var newWin = window.open("pageB.aspx");  // ref to pageB is stored in var newWin
newWin.onload = function () 
{
    newWin.helloB();
}
function helloA()
{
    // Run the alert method inside the new window
    newWin.alert("Hello from page A!");
}
B页:

var opener = window.opener; // Ref to pageA is stored in var opener
opener.helloA(); // call to opener's helloA function
function helloB()
{
    // Run the alert method inside the opener window
    opener.alert("Hello from page B!");
}

// We can do the same thing in an event that occurs on this page
var btn = document.getElementById("pageBButton");
btn.onclick = function ()
{
    window.opener.helloA();
}

据我所知,你不能那样做。如果两个页面都来自同一个域,并且您从第二个页面打开了第一个页面,那么。。。不,您仍然无法执行javascript-可能您可以使用
文档访问DOM。请参考
更具体一些。是否要:使用a页的脚本修改B页?让a页的脚本借用B页的一个或两个函数来完成a页的工作?还有别的吗?正如Amarghosh所说,如果您已经从A页打开了B页(反之亦然),则可以执行上述任一操作。然后你可以做一些事情。回复的事情是有一个页面a.aspx有一个脚本可以创建一个标签。从A我打开另一页B.aspx。我想要的是当我单击B.aspx中的按钮时。a.aspx中的脚本应该执行。或者A.aspx中调用该脚本的链接应该执行…嗯。问题是,A.aspx中的脚本应该做什么?
window.parent
用于从帧访问父脚本
window.opener
是您需要的。这很好,但正如其他帖子所述,这两个页面必须位于同一个域中才能正常工作。@SerjSagan:嗯,是的,但这是不言而喻的;-)