Javascript 强制iframe中的下一页加载中断
我有一个iframe加载新的选项卡页面。单击缩略图,尽管它加载在该iframe中。我希望iframe中的任何后续加载都加载到Javascript 强制iframe中的下一页加载中断,javascript,html,iframe,firefox-addon,Javascript,Html,Iframe,Firefox Addon,我有一个iframe加载新的选项卡页面。单击缩略图,尽管它加载在该iframe中。我希望iframe中的任何后续加载都加载到窗口。top。这是否可以在不单独将缩略图设置为使用target=\u blank的情况下实现。因为如果用户删除了一个缩略图,它将由另一个缩略图填充,而该缩略图不会设置此目标属性 我给出了这个javascript和html5,因为同样的知识也适用于打破框架 如果没有javascript/html5解决方案,这些是我对选项的想法: 将unload事件添加到iframe。但是在
窗口。top
。这是否可以在不单独将缩略图设置为使用target=\u blank
的情况下实现。因为如果用户删除了一个缩略图,它将由另一个缩略图填充,而该缩略图不会设置此目标属性
我给出了这个javascript和html5,因为同样的知识也适用于打破框架
如果没有javascript/html5解决方案,这些是我对选项的想法:
- 将
unload
事件添加到iframe。但是在卸载事件对象中,我找不到它将要使用的新url
- 在修改请求时使用
http
observer,在修改时检查loadContext
窗口是否为iframes contentWindow,如果是,则中止该请求并将其加载到窗口中。top
,我只是认为这对于应该如此简单的东西来说太过分了
- 在整个文档或窗口上添加一个
单击事件侦听器
- 然后在调用事件侦听器时,检查目标
- 您可能需要遍历
.parentElement
树,直到找到
- 如果成功
.preventDefault()
则事件
- 然后,做你想做的事(tm)
例如:
addEventListener("click", function(e) {
let target = e.target;
while (target && !target.href) {
// Find the parent <a>, if any
target = target.parentElement;
}
if (!target) {
// Nothing found;
return;
}
e.preventDefault();
alert(target.href);
// window.top.location = target.href; ?!
});
addEventListener(“单击”),函数(e){
设target=e.target;
while(target&&!target.href){
//查找父项(如果有)
target=target.parentElement;
}
如果(!目标){
//没有发现任何东西;
返回;
}
e、 预防默认值();
警报(target.href);
//window.top.location=target.href?!
});
在控制台中对此进行了测试,似乎效果不错。谢谢,伙计,我投票支持侧面解决方案。虽然我不能这样做。因为如果用户使用密钥,它将丢失。一些插件也使用键在这里导航。我还希望在其他地方也能使用这种从帧中断的技术。但目前我使用的解决方案是变异观察者,每次添加缩略图时,我都会查询选择器,它是一个元素,并设置它的target=\u parent
thx,通过键盘切换到链接,然后点击enter
,实际上也会生成一个点击事件。因此,键盘导航也包括在内。还是我遗漏了什么?哦,不可能,我不知道。我实际上没有测试我只是假设lol ok谢谢老兄!实际上我对这个也很感兴趣。后续页面加载不必按
的元素进行,因此我不喜欢单击解决方案。是否有其他想法来强制下一次加载?关于卸载
的更多信息?从加载项/特权范围来看,必须存在一个优雅的解决方案。请撤销您已接受的解决方案,希望其他人可以提供其他想法。