美文网首页
iframe 窗体相互调用

iframe 窗体相互调用

作者: 看看你的肥脸 | 来源:发表于2019-02-02 12:08 被阅读0次

    1、iframe 窗体相互调用

    (1)在使用iframe的页面时,要操作这个iframe里面的DOM元素可以用:contentWindow、contentDocument

    document.getElementById("myiframe").contentWindow
    

    得到iframe对象后,就可以通过contentWindow得到iframe包含页面的window对象,然后就可以正常访问页面元素了;
    jqurey 写法
    $("#myiframe")[0].contentWindow jquery选择器获得iframe,先把jquery对象转换为DOM对象。

    (2)iframe页面要操作这个iframe的父页面的DOM元素,可以用window.topwindow.parent

    top.$("iframe[name='iframeWindow']")[0].contentWindow.$('#theId');
    

    trigger的坑

    有时候项目需求页面加载完后,需要模拟用户操作,自动点击按钮。Jquery中可以使用trigger()方法模拟事件。

    $(selector).trigger(event,[param1,param2,...])
    

    event:必须,规定指定元素上要触发的事件。可以是自定义事件和标准事件。

    param1,param2,...可选。传递到事件处理程序的额外参数。
    额外的参数对自定义事件特别有用。

    例如,模拟点击事件可以用以下的语句

    $('#btn').trigger("click");
    $('#btn').click();
    

    但是,trigger()方法有一个问题,trigger() 方法触发被选元素上指定的事件以及事件的默认行为(比如表单提交)。
    这里就需要介绍另外一个方法triggerHandler(),triggerHandler() 不触发事件的默认行为。

    trigger()与 triggerHandler() 方法相比的不同之处:
    • 它不会引起事件(比如表单提交)的默认行为
    • .trigger() 会操作 jQuery 对象匹配的所有元素,而 .triggerHandler() 只影响第一个匹配元素。
    • 由 .triggerHandler() 创建的事件不会在 DOM 树中冒泡;如果目标元素不直接处理它们,则不会发生任何事情。
      菜鸟教程在线编辑

    相关文章

      网友评论

          本文标题:iframe 窗体相互调用

          本文链接:https://www.haomeiwen.com/subject/fxkrcqtx.html