Ответ 1
Вы работаете с position:absolute
, в соответствии с примером, который вы загрузили на jsfiddle... Добавление z-index
в "вы не можете щелкнуть меня, потому что я за кнопкой iframe" позволяет мне щелкните его.
EDIT: если вы хотите сделать pointer-events: none;
всюду, кроме одного div
, вы можете добавить pointer-events
в каждый element
вместо iframe
. Согласно вашему примеру в скрипке, если вы хотите сохранить Николас Кейдж, но заблокируете другие события, вы можете сделать что-то вроде этого:
switchbutton.onclick=function(){
this.innerHTML="reload to reset";
//iframe.style.pointerEvents="none";
cantclick.innerHTML="You can click me now! :)";
iframe.contentDocument.body.innerHTML="<button>You can't click me now because my parent iframe is click-through! :(</button><br>or save this gorgeous image of your favorite actor which may or may not be relavant to the problem.<br><img id='nicholasCage' src='http://media2.popsugar-assets.com/files/2014/01/06/008/n/1922283/131b4126c7b8738f_thumb_temp_image333458751389045360.jpg.xxxlarge/i/Best-Nicolas-Cage-Memes.jpg'/>";
var iframeBody = iframe.contentDocument,
elements = iframeBody.querySelectorAll("*"),
i,
len = elements.length;
for(i=0;i<len;i++){
elements[i].style.pointerEvents="none";
}
iframeBody.getElementById("nicholasCage").style.pointerEvents="all";
}
Если вы можете использовать jQuery, вы можете сделать это быстрее, используя $("iframe *").css("pointer-events","none");