我运行以下脚本为我的平板电脑提供天气预报。问题是,每次有人无意中触摸它时,它都会打开源页面。你知道我怎么才能阻止外部页面的链接吗?我在iframe上成功地使用了沙盒,但无法使其在这方面工作,因为我不确定这是什么语言:
<a class="weatherwidget-io" href="https://forecast7.com/en/51d51n0d13/london/ "data-label_1="LONDON" data-label_2="WEATHER" data-font="Roboto" data-icons="Climacons Animated" data-theme="pure" pointer-events: none>LONDON WEATHER</a>
<script>
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src='https://weatherwidget.io/js/widget.min.js';fjs.parentNode.insertBefore(js,fjs);}}(document,'script','weatherwidget-io-js');href="javascript:void(0)"
</script>
<script>
function reloadIFrame() {
document.getElementById('weatherwidget-io-0').src = document.getElementById('weatherwidget-io-0').src;
}
window.setInterval(reloadIFrame, 95000);
</script>
<script type="text/javascript">
function DisableFrameLinks(){
var iFrame = document.getElementById('weatherwidget-io');
var links;
if ( iFrame.contentWindow)
{
links = iFrame.contentWindow.document.links;
for(var i in links)
{
links[i].href="#";
}
}
}
</script>
1条答案
按热度按时间umuewwlo1#
这个
pointer-events: none
在<a>
他错过了style=""
它周围的属性。更新自:
致:
此外,您的整个代码可以简化为以下内容:
所有的
<script>!function(d,s,id)...</script>
函数的作用是添加<script id="weatherwidget-io-js" src="https://weatherwidget.io/js/widget.min.js"></script>
如果该页面不存在,则添加到该页面-您可以首先添加脚本并删除该函数。这个
DisableFrameLinks()
一旦css样式更改,该函数也可以移除pointer-events: none;
正确地应用于<a>
.最低要求代码: