如何使用javascript防止弹出窗口?

时间:2011-04-18 05:06:47

标签: javascript html popup

无论如何,我可以使用javascript阻止来自其他网站(iframe)的弹出窗口吗?

示例:我有一个网站,其中几个网站的iframe。其中一个有这样的弹出脚本:

<script type="text/javascript">
var popunder=new Array()
popunder[0]="http://www.target.com"

//Specify the width and height of new popunder window (in pixels).
var width = '700'; 
var height = '450';

//these are obvious variables. set "yes" or "no".
var p = 'scrollbars=yes, resizable=yes, toolbar=yes,' + 'menubar=yes, status=yes, location=yes, left=85, top=20, height=' + height + ',width=' + width;

// Load new PopUnder only once per browser session? (0=no, 1=yes)
// Putting 0 will cause the Popunder to load every time page is loaded
// Specifying 1 will cause it to load only once per session
var one_time=0

// That's it! Don't edit the code below unless you're really good. :-P //

function get_cookie(Name) {
  var search = Name + "="
  var returnvalue = "";
  if (document.cookie.length > 0) {
    offset = document.cookie.indexOf(search)
    if (offset != -1) { // if the cookie exists
      offset += search.length
      //set the index of beginning value
      end = document.cookie.indexOf(";", offset);

    if (end == -1) // set the index of the end of cookie value
         end = document.cookie.length;
         returnvalue = unescape(document.cookie.substring(offset, end))
      }
   }
  return returnvalue;
}

function loadornot(){
if (get_cookie('popunder')==''){
load_pop_power()
document.cookie="popunder=yes"
}
}

function load_pop_power(){
win2 = window.open(popunder[Math.floor(Math.random()*(popunder.length))], "bw", p)
win2.blur()
window.focus()
}

if (one_time==0)
load_pop_power()
else
loadornot()
</script>

请提示此弹出窗口不能阻止,并且用户在Firefox或IE上具有低安全性设置。

我有ff。网站上的iframe:(iframe.php)

<iframe src="http://friend.com/pop.php"></iframe>

我应该在iframe.php页面上做什么来阻止弹出窗口?

3 个答案:

答案 0 :(得分:2)

不可能。 wdm是对的。但是这里提供了更详细的答案。

How to block pop-up coming from iframe?

答案 1 :(得分:1)

我很确定你想要做的事情是不可能的。

两个选项......

  1. 避免iframing有弹出窗口的网站。
  2. 询问他们是否会删除弹出窗口或为您创建特殊的目标网页。如果你与他们有联系,他们可能会帮助你。

答案 2 :(得分:0)

不,我不同意html5具有沙箱属性,该属性控制通过iframe看到的内容或可以执行的操作。

只需在您的iframe中添加以下属性,即可阻止弹出式窗口 “ sandbox="allow-scripts allow-forms allow-same-origin"

例如<iframe src="source of your iframe" sandbox="allow-scripts allow-forms allow-same-origin">