2010-02-06 64 views
2

如何執行JavaScript從另一個aspx頁面寫入一個aspx頁面?如何執行JavaScript從另一頁面寫入一頁中?

+0

據我所知,你不能做到這一點。如果兩個頁面都來自同一個域,並且您從第二個頁面打開第一個頁面,那麼...否,您仍然無法執行javascript - 可能您可以使用'document.referer'訪問DOM – Amarghosh 2010-02-06 05:17:40

+0

請更具體。你想要: 從頁面A有一個腳本修改頁面B? 讓頁面A的腳本借用頁面B中的一個或兩個函數在頁面A中工作? 還有別的嗎? 正如Amarghosh所說,做上述任何一項的唯一方法是,如果您從頁面A打開頁面B(反之亦然)。那麼你可以做某些事情。 – BobS 2010-02-06 05:58:55

回答

4

你不能這樣做。你不想編寫的JavaScript的網頁,將其寫入到一個.js文件(即:的script.js),然後引用該js文件與腳本標籤:

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

在一個頁面打開其他頁面隱藏的IFrame並在隱藏的iframe中執行javascript代碼,如document.getElementById('targetFrame')。contentWindow.targetFunction();

注意:這兩個頁面應該從相同的域中提供,否則會出現XSS問題。

1

簡短的回答是,你不能。

我不確定你爲什麼這麼問,但是如果你的動機只是重用JavaScript代碼,那麼你實際上可以將代碼分解到一個單獨的.js文件中,並通過做不同的頁面調用它

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

在這些頁面中。

+0

答覆要求 事情是一個頁面A.aspx那裏有腳本 這將創建一個選項卡。從A我打開另一頁 B.aspx。 我想要的是當我點擊B.aspx中的一個按鈕時,應該執行A.aspx中的腳本 。或者A.aspx中的鏈接 稱該腳本應該執行... – jazz 2010-02-06 06:25:07

+0

hmm。問題是,那個腳本在A.aspx,它應該做什麼? – 2010-02-06 07:45:23

0

只有在頁面之間存在父子關係時纔有可能。例如,如果A.aspx是您的父頁面,並且您使用javascript window.open()打開B.aspx頁面,則B.aspx將是子頁面。然後你可以調用B.aspx的A.aspx javascript函數,使用window.opener而不是window.parent我之前發佈的。

謝謝。

+0

'window.parent'是用於從幀訪問父。 'window.opener'就是你需要的。 – 2010-02-06 10:12:55

+0

感謝您糾正我。 – Hoque 2010-02-06 20:05:12

1

如果您使用window.open打開一個新的窗口,你可以使用window.opener對象從新窗口獲取父對象的引用和window.open本身會返回一個參考打開的頁面。例如:

頁答:

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(); 
} 
+0

這是很好的,但在其他帖子說,這兩個網頁必須要對這個工作相同的域。 – 2013-11-25 22:26:11

+0

@SerjSagan:嗯,是的,但幾乎不言而喻;-) – 2013-11-27 01:00:46

相關問題