在 iframe 脚本中使用 javascript 禁用超链接

Disable hyperlinks with javascript in a iframe script

我用脚本加载内容,脚本会生成一个iframe。

var egmWidgetUrl = '//www.domain.com/widget2';

var referer = '';
if(location.host){
 referer = encodeURIComponent(location.host);
}else{
 referer = 'unknown';
}


fussballdeWidgetAPI = function() {
 var D = new Object();
 var C = new Object();

 D.showWidget = function(E, K) {
  if (K != undefined && K != null && K != "" && E != undefined && E != null && E != "") {
   if (document.getElementById(E)) {
    if (K != "") {
     var src = egmWidgetUrl + "/-"
         + "/schluessel/" + K
      + "/target/" + E
      + "/caller/" + referer;
     createIFrame(E, src);
    }
   } else {
    alert("Der angegebene DIV mit der ID " + E
      + " zur Ausgabe existiert nicht.")
   }
  }
 };

 window.addEventListener("message", receiveMessage, false);
 function receiveMessage(event)
 {
    if (event.data.type === 'setHeight'){
      document.querySelectorAll('#' + event.data.container + ' iframe')[0].setAttribute('height', event.data.value + 'px');
    }
    if (event.data.type === 'setWidth'){
      document.querySelectorAll('#' + event.data.container + ' iframe')[0].setAttribute('width', event.data.value + 'px');
    }
 }
 return D
};


function createIFrame(parentId, src){
 var parent = document.getElementById(parentId);
 var iframe = document.createElement('iframe');
 iframe.frameBorder=0;
 iframe.setAttribute("src", src);
 iframe.setAttribute("scrolling", "no");
 iframe.setAttribute("width", "300px");
 iframe.setAttribute("height", "500px");
 iframe.setAttribute("style", "border: 1px solid #CECECE;");
 parent.innerHTML="";
 parent.appendChild(iframe);
}
<script type="text/javascript"
  src="style/fussball_de.js">
 </script>

内容的调用是:

<script type="text/javascript">
    new fussballdeWidgetAPI().showWidget('widget1', '01PD126RC8000000Vxxxxxxxxxx');
</script>

在生成的iframe中会有超链接,我想禁用超链接,例如和 ”#”。我尝试了不同的方法,但没有任何帮助。

$("iframe").load(function() {
$("iframe").contents().find("a").each(function(index) {
    $(this).on("click", function(event) {
        event.preventDefault();
        event.stopPropagation();
    });
});

是否可以禁用该脚本中的超链接?

谢谢!

如果 iframe 的内容从不同的域加载到主页,那么出于安全原因,您将无法通过 JavaScript 访问其内容。

如果您控制加载到 iframe 中的内容,您可以在加载页面中使用一些 JavaScript 代码 detect whether it is running within an iframe 并禁用链接。

除了使用 CSS 在 iframe 上放置透明图像外,别无他法。

编辑:

在 HTML 文档中的 <iframe> 标签上方键入代码 <div id="IframeWrapper" style="position: relative;">

在您在第 1 步中输入的行下方输入代码 <div id="iframeBlocker" style="position: absolute; top: 0; left: 0; width: [width]px; height: [height]px"></div>。将 [width] 和 [height] 替换为您的 iframe 的宽度和高度。

在您的 iframe 标记下方输入结束 div 标记 </div>