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

时间:2015-08-17 13:58:50

标签: javascript hyperlink

我用脚本加载内容,脚本将生成一个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>
&#13;
&#13;
&#13;

对conetent的调用是:

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

在生成的iframe中将是超链接,我想禁用超链接,例如与&#34;#&#34;。我尝试了不同的方法,但没有任何帮助。

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

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

谢谢!

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

修改

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

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

在iframe代码下方输入结束div标记</div>