从窗口在原始页面中运行Function.打开javascript

Run Function in original page from window.open javascript

本文关键字:运行 Function 打开 javascript 窗口 原始      更新时间:2024-02-11

如何从窗口在原始页面中运行Function。打开

original_page.html

<div id="Processing" style="display:none;">
<button onclick="window.open("Processing_window.html")">open</button>
</div>
<script language="JavaScript">
    function submit_form() {    
          var upgradeForm = document.getElementById('upgradeForm');
          setTimeout("upgradeForm.submit()",3000); 
     } 
</script>

==========

Processing_window.html

<script language="JavaScript">
    function Processing_window() {  
        var doc = window.opener.document, Processing = doc.getElementById("Processing");
        Processing.style = '';
        submit_form();  //Here the problem
        window.close();
    } 
    setTimeout ("Processing_window()",5000); 
</script>

==========

我从Processing_window.html 运行了"submit_form();"函数

要从开启器访问函数,请使用window.opener.functionName,假设两者都在同一域中。

function Processing_window() {  
    var doc = window.opener.document, Processing = doc.getElementById("Processing");
    Processing.style = '';
    // Here's the solution
    window.opener.submit_form();  
    window.close();
} 
setTimeout ("Processing_window()",5000); 

您需要对属性中代码中的引号进行HTML编码,或者使用撇号:

<button onclick="window.open('Processing_window.html')">open</button>

只要打开的页面具有相同的来源(相同的服务器、相同的协议),就可以使用opener属性访问父窗口window对象。在这里你可以找到对函数的引用:

window.opener.submit_form();

您可以,但不能跨域。仅在同一域中。

<script>
function new_win_fun() {
var wind = window.open("Processing_window.html");
var upgradeForm = wind.document.getElementById("upgradeForm");
wind.setTimeout("upgradeForm.submit()",3000); 
}
</script>
<button onclick="new_win_func()">Run</button>