代码之家  ›  专栏  ›  技术社区  ›  JsWizard

在iframe中找到一个元素,然后通过jquery或wordpress中的js隐藏它。

  •  -1
  • JsWizard  · 技术社区  · 6 年前
    <div id="check1">
    <iframe src="xxxx" id="testIframe">
       <div>
          <div>
            ...
             <img class="centered-image" ... >
            ...
          </div>
       </div>
    </iframe>
    

    目标HTML结构在wordpress中,那么如何通过jquery或js检查它的存在并隐藏iframe?以下代码不起作用。如果目标元素不存在,我想以无形的方式处理它。

    jQuery(document).ready(function(){
        if($(this).hasClass("centered-image").length == 0) {
            $(this).contents().find("#finn-api").hide();
        }
    });
    

    被改进的: 我得到了如下的答案。

    jQuery(document).ready(function( $ ) {
        if($("#check1").contents().find(".centered-image").length == 0) {
            $('#finn-api').hide();
        }
    });
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   saAction    6 年前

    问题1:您正在使用 iFrame jquery写在父屏幕中

    你所做的是受同一原产地政策的约束 ( https://en.wikipedia.org/wiki/Same-origin_policy )这应该是 获取拒绝权限类型错误的原因。

    问题2:您可能不使用 document.ready 函数,因为它可能仍然在内部加载iframe的内容。你需要额外的元素,比如 button setInterval() 检查里面的内容 iframe

    但是,您可以使用以下代码执行此操作:

    function checkImage(){
    
    	if($("#iFrame1").contents().find("#someDiv img").hasClass("centered-image"))
    	{
    		$("#iFrame1").hide();
    	}
    }
    <iframe id="iFrame1" height="100%" width="100%" style="min-height:300px;border:none" src="ddl__School.html"></iframe>
    
    <button onclick="checkImage()">Check class in side iFrame</button>

    您的iframe文件html代码将是:

    <div>
    	<div id="someDiv">
    		...
    		<img class="centered-image" src="https://picsum.photos/200/200/?random">
    		...
    	</div>
    </div>

    使用开发人员工具栏检查类是否正在应用。