好的,我知道这是一个非常古老的问题,也许已经在这里的一些讨论中得到了回答,但我到目前为止找不到它,也许我没有用正确的关键词搜索,但是如果有任何帮助关于这个框架破坏问题或任何答案的链接将是一个很大的帮助,因为我对JS和JQuery的知识非常有限。
所以就是这样,我试图用iframe创建一个affliates网站,但该网站在名为if (top!=self) {top.location = self.location;}
的网站索引页面上有iframe破坏脚本Landing.aspx
以及该网站的注销页面我inspet在/common/logout.aspx
,两个页面都包含相同的HTML代码。
我可以阻止网站在我的网站第一次加载时破坏框架,但是在用户登录框架内的affliate网站然后注销后(这意味着这是用户输入的手动重定向) ),该网站将突破框架,并且网站网址将更改为http://example.com/Landing.aspx?type=logout
为什么当用户在框架内的关联网站点击退出时,“防止框架破坏脚本”无法正常运行。
注意:affliate网站在flash上运行,因此我无法使用iframe沙箱,因为它阻止了Flash运行并使用户无法登录该网站。
那么当用户点击退出时如何制作,当注销页面加载时它仍将包含在iframe中,或者我可以将其回到我自己的网址
这是我的index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<some other meta.../>
<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="hidejs.js" ></script>
<script>
$(document).ready(function() {
});
</script>
</head>
<body>
<div class="header">
header content
</div>
<div class="wrap">
//iframe created should be placed here
</div>
<div class="footer">
footer content
</div>
<body>
</html>
这里是hidejs.js
这个脚本的内容,我在这里讨论了一个关于隐藏viewsource和inspect元素代码的讨论。以及我使用javascript创建iframe的原因,因为如果我在index.html
上编写iframe,源网站将在阻止iframe内存脚本可以保留之前突破框架。
$(document).ready(function() {
var ga = document.createElement('script');
ga.type = 'text/javascript';
ga.src = 'hiding.js';
ga.id = 'hiding';
document.querySelector("head").appendChild(ga);
$('#hiding').remove();
var iframe = document.createElement('iframe');
iframe.id = 'fram';
iframe.name = 'fram';
iframe.src = 'http://www.example.com';
iframe.style.height = 'someheight';
iframe.style.width = 'somewidth';
iframe.scrolling = 'no';
iframe.frameBorder = '0';
document.querySelector("body > div.wrap").appendChild(iframe);
});
所以这个hidejs.js
会创建并链接到head标记内部名为hiding.js
的javascript文件,并在body标记内的div内部iframe,此hiding.js
内的脚本是iframe破坏者破坏脚本我也在这里找到了
var prevent_bust = 0
window.onbeforeunload = function() { prevent_bust++ }
setInterval(function() {
if (prevent_bust > 0) {
prevent_bust -= 2
window.top.location = 'index.html#fram'
}
}, 1)
真的需要这个案子的帮助。