【发布时间】:2017-05-06 15:11:45
【问题描述】:
我正在尝试在同源 iframe 中隐藏一个元素。然而,这个混蛋在被隐藏之前会眨眼几毫秒。所以我所做的是添加 display: none 并在 iframe 加载后将其删除 - 很棒。但是现在,当用户单击 iframe 的内页链接时,它也包含要隐藏的元素,它仍然闪烁(因为 display:none 现在已删除)。我需要检测何时再次添加它,我。 e.就在另一个页面开始加载之前。
在这里测试:https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_script
这是我尝试过的:
<html class="js">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<style>
html.js #iframeID
{
display: none;
}
</style>
<script>
$(document).ready(function()
{
$('#iframeID').on('load', function()
{
$('#iframeID').contents().find('a').on('click', function()
{
$('html').addClass('js');
console.log('click');
});
console.log('loaded');
$('#iframeID').contents().find('#mySidenav').remove();
$('html').removeClass('js');
});
});
</script>
</head>
<body>
<iframe id="iframeID" height="800px" width="800px" src="https://www.w3schools.com/" ></iframe>
<script>
</script>
</body>
</html>
但是,有些a 元素不会加载其他页面。在这个例子中,尝试点击 iframe 网页顶部的“TUTORIALS” - 它只是打开下拉菜单,而不是加载另一个页面。
我该怎么办?
我注意到“TUTORIALS”链接有href="javascript:void(0)"。也许我应该以某种方式选择没有此类href的所有a链接?但不确定它是否是万无一失的。
【问题讨论】:
标签: javascript jquery html iframe