首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >window.opener为空,右键单击链接

window.opener为空,右键单击链接
EN

Stack Overflow用户
提问于 2016-08-05 14:52:59
回答 2查看 2.3K关注 0票数 0

我使用javascript window.opener属性刷新子窗口中的父窗口。

父窗口只包含一个带有数据的表和子窗口的链接,当打开子窗口时,使用window.opener属性在父窗口中执行js函数,父窗口中的js函数使用ajax刷新表。

问题在于window.opener,因为当用户使用右键单击(contextmenu)打开链接时是空的。

示例:

parent.jsp

代码语言:javascript
运行
复制
<html>
    <head>
       <script type="text/javascript">
              function refreshTable() {
                 // ajax code to refresh the #theTable table, not important for this question
              }
       </script>
    </head>

    <body>
       <a href="/folder/child.jsp" target="_blank">OpenChild</a> 
       <table id="theTable">
           <tr>
            <td>...</td>
          </tr> 
       </table>
    </body> 
</html>

child.jsp

代码语言:javascript
运行
复制
<html>
        <head>
           <script type="text/javascript">
                  $(document).ready( function() {
                     // opener is NULL when child is opened with right click
                     window.opener.refreshTable();

                  });
           </script>
        </head>
        <body>
            ...          
        </body> 
</html>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-02 11:17:37

好的,我知道很晚了,但我把这个留在这里以备将来之用。

添加

代码语言:javascript
运行
复制
rel="opener" 

到target="_blank“链接

代码语言:javascript
运行
复制
<a href="/folder/child.jsp" target="_blank" rel="opener">OpenChild</a> 

打开器将通过子页面传递。

基于https://developer.mozilla.org/en-US/docs/Web/API/Window/opener

在以下情况下,浏览器不填充window.opener,但将其保留为空:

  • 可以通过在链接上指定rel=noopener或在windowFeatures参数中传递noopener来省略开包。
  • 在Firefox79中,打开窗口是因为链接到_blank的目标,除非使用rel=opener显式请求,否则不会获得打开器。
  • 具有一个具有相同来源值的交叉原产地-开启器-策略标头可以防止设置打开器.由于新窗口加载在不同的浏览上下文中,因此它将没有对打开窗口的引用。

sidenote:顺便说一句,如果您打开一个页面时,右击或左键是没有区别的。

票数 2
EN

Stack Overflow用户

发布于 2016-08-05 15:14:46

根据您的需求,您可以始终在您的window.opener页面中设置child.jsp

代码语言:javascript
运行
复制
window.opener="https://www.google.com/";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38792184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档