javascript - Iframe ContentWindow 根据 Iframe 源显示/隐藏元素
问题描述
基于 Iframe 源 Plnkr.co 示例代码的 Iframe ContentWindow 显示/隐藏元素:https ://plnkr.co/plunk/yv5HLC4TxB3ql8XU
当 iframe 源 ContentWindow 源不是初始 iframe 源时,我试图显示“aside”元素。我尝试了 StackOverflow 中描述的许多方法,但没有一个对我有用。在我的 plnkr.co 示例中,我有一个带有两个 iframe(iframeone.html、iframetwo.html)的主 index.html 页面。iframeone.html 的内容由指向两个页面(betaOne.html、betaTwo.html)的链表组成。用户可以从这些 betaOne / betaTwo 页面中的任何一个返回到 iframeone.html。iframe 的 contenWindow 是 betaOne 或 betaTwo 我希望 'aside' 元素可见。当 iframe 的 contentWindow 是初始的 'iframeone.html' 时,我想隐藏 'aside' 元素。
我的 javascript 示例:''' function evaluation(){ var iframesource = document.getElementById("iframeOne").src;
alert('From within Document.ready.') // using this to ensure that my external js file is being accessed.
if(iframesource.includes('iframeone.html')){
alert('internal alert YES');
document.getElementById('asideMenu').style.display = 'none';
}else{
alert('internal alert NO');
//$("asideMenu").css('visibility') = 'visible';
document.getElementById('asideMenu').style.display = 'block';
}
}
'''
解决方案
这对我有用:
function evaluation(){
var iframeoneContentWindow = document.getElementById('contentFrame').contentWindow;
alert(iframeoneContentWindow.document.URL + 'External Script Alert');
if(iframeoneContentWindow.document.URL.includes('body_ros')){
alert('internal alert YES');
document.getElementById('contentSide').style.display = 'none';
}else{
alert('internal alert NO');
document.getElementById('contentSide').style.display = 'block';
}
}
推荐阅读
- php - 如何同时更新在laravel中连接的多个表数据
- python - 使用 pandas 对列中的重复值进行分类
- c# - DatePicker 在 Chrome 中增加 1 小时
- java - 为什么这段代码在 kotlin(Android) 中选择了错误的 dayofMonth?
- css - 如何根据框的大小调整下拉菜单的位置(CSS3家族树)
- java - 无法访问 /storage/emulated/0/Music
- r - 在 RSQLite 中捕获发送查询的结果输出
- r - 在自定义函数 R 中包含 group_by
- reactjs - 如果 React 的 click 处理程序每次都是一个新函数,到底有什么问题?
- keras - 获取由 TimeDistributed 层包裹的嵌套中间模型的输出