top.frames在Chrome中不起作用

top.frames wont work in chrome

本文关键字:不起作用 Chrome frames top      更新时间:2023-09-26

我有 3 个 html 页面。 main.html, page1.html 和 page2.html.我使用以下代码在main中显示页面1.html和page2.html.html。

<!DOCTYPE html>
<html>
   <frameset frameborder="1" rows="50%, *">
        <frame name="f1" src="Page1.html" />
        <frame name="f2" src="Page2.html"/>
    </frameset>
</html>

第 1 页.html代码

    <!DOCTYPE html>
<html>
   <head>
      <style>
             .content {display:none;}
      </style>
      <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
      <script src="myjs.js"></script>
   </head>
   <body>
         <table id="resultDetails" border="1">
               <th>Result Details</th>
               <tr>
                  <td>
                  Click on me to see more details in other page
                  <div class="content">
                       <p> R1 data</p>
                  </div>
                  </td>
               </tr>
        </table>
    </body>
</html>

和第 2 页.html代码

<!DOCTYPE html>
<html>
   <body>
         <div id="myDiv">
         </div>
         <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
      <script src="myjs.js"></script>
    </body>
</html>

My JavaScript myjs.js

 $(document).ready(function () {
    $('table').on('click', 'tr', function () {
       var doc =window.top.frames['f2'].document;
       var divElmnt = $(doc.getElementById('myDiv'));
       $(divElmnt.html($(this).find('.content').html()));
    });
});

使用此代码,单击表格行时,我可以在 page2 的"mydiv"div 中显示div "内容"内容。

这适用于IE和FF,但不适用于Chrome。错误:文档未定义。对于 chrome 的 window.top.frames['f2'] 的等效物是什么。

给你的

框架集和框架一个 ID:

var $fs = $("#fs");
var f2 = $fs.find("#f2");

f2 现在是一个 jQuery 对象。

问题在于本地文件的Chrome安全标志,即 file:///。使用"--allow-file-access-from-files"标志选项启动Chrome后,top.frames工作了。

我还在这里找到了一个关于使用 JavaScript 进行帧间通信的有用文档。