如何从另一个页面执行一页写入的JavaScript?

时间:2010-02-06 05:13:19

标签: javascript asp.net

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

5 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

简短的回答是,你不能。

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

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

在那些页面中。

答案 2 :(得分:1)

如果您使用window.open打开一个新窗口,可以使用window.opener对象从新窗口获取对父对象的引用,window.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();
}

答案 3 :(得分:0)

在一个页面中打开隐藏IFrame中的另一个页面,并在隐藏的iframe中执行javascript代码作为document.getElementById('targetFrame')。contentWindow.targetFunction();

注意:两个页面都应该从同一个域提供,否则会出现XSS问题。

答案 4 :(得分:0)

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

感谢。