jquery 加载iframe.src将运行JSP中的所有JavaScript

hyrbngr7  于 2023-04-20  发布在  jQuery
关注(0)|答案(1)|浏览(147)

我的应用程序在 Package 器页面中的iframe内运行。当 Package 器页面加载时,iframe的源代码设置如下:

<script type="text/javascript">
  var frameSrc = 'myApp.jsp';
  $(document).ready(function() {
    loadFrame(frameSrc);
    $("#iFrm").height($(window).height() - 175);
    $(window).bind('resize', function(){
        $("#iFrm").height($(window).height() - 175);
        return false;
    });
    $("#adminLink").click(function(){
        frameSrc = 'myAdmin.jsp';
        loadFrame(frameSrc);
    });
    return false;
  });
  
  function loadFrame(src){
      $("#iFrm").attr('src', src);
  }
  </script>

这个加载和运行都很好,但是我在页面上有一个管理链接,它旨在将一个不同的页面加载到iframe中,它在document.ready函数中有一个事件处理程序。
我遇到的问题是myAdmin.jsp正在加载,然后 Package 器页面中的原始document.ready脚本再次运行-完全使用原始frameSrc值。似乎通过更改iframe源代码,它触发了整个 Package 器页面和原始iframe源代码的重新加载。有人看到这个吗?我错过了什么明显的东西吗?

7ivaypg9

7ivaypg91#

我在研究各种可能的解决方案时得到了这个问题的答案。这个问题原来与 adminLink 有关。href 值为空,这似乎指示浏览器重新加载当前页面( Package 器)。当我将 javascript:return false;href 我的问题解决了。

<a id="adminLink" href="">Administration</a>

vs

<a id="adminLink" href="javascript:return false;">Administration</a>

相关问题