Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 提示是重复使用现有弹出窗口还是创建新弹出窗口_Javascript_Browser - Fatal编程技术网

Javascript 提示是重复使用现有弹出窗口还是创建新弹出窗口

Javascript 提示是重复使用现有弹出窗口还是创建新弹出窗口,javascript,browser,Javascript,Browser,首先,我要说的是,我对javascript几乎一无所知,除了这种非常罕见的情况外,我并不打算过多地使用它。因此,请原谅我没有尝试了解更多关于它的信息,以便尝试为自己解决这个问题 情况: 我经常喜欢使用弹出式浏览器窗口。为此,我在浏览器中创建了一个书签,其中包含我从某处复制的一小段Javascript(我不记得在哪里),并根据我的屏幕进行了调整: javascript:%20var%20WindowPopup%20=%20window.open(window.location.href,'PopU

首先,我要说的是,我对javascript几乎一无所知,除了这种非常罕见的情况外,我并不打算过多地使用它。因此,请原谅我没有尝试了解更多关于它的信息,以便尝试为自己解决这个问题

情况:

我经常喜欢使用弹出式浏览器窗口。为此,我在浏览器中创建了一个书签,其中包含我从某处复制的一小段Javascript(我不记得在哪里),并根据我的屏幕进行了调整:

javascript:%20var%20WindowPopup%20=%20window.open(window.location.href,'PopUp','left=1150,top=830,width=660,height=410,scrollbars=yes,location=no,status=no');
问题:

就目前情况而言,当存在一个现有的弹出窗口时,我再次选择书签,如果我在同一个站点,则会重复使用相同的弹出窗口,否则会创建一个新的弹出窗口。但是,在很多情况下,我想推翻这种默认行为

三个问题:

  • 如何强制弹出窗口始终在新窗口中打开

  • 如何强制弹出窗口始终重复使用现有窗口

  • 结合前两个选项:是否可以检测是否存在现有弹出窗口,并提示我是否要重新使用它或打开一个新窗口

  • 非常感谢您的帮助。

    书签中的字符串“PopUp”是弹出窗口的名称。如果使用相同的名称创建另一个弹出窗口,则将重新使用已打开的窗口。
    如果你想避开这种行为,你必须每次创建一个带有唯一名称的弹出窗口

    以下bookmarklet代码将在弹出窗口的名称后附加一个时间戳,以创建一个唯一的名称:

    javascript:%20var%20WindowPopup%20=%20window.open(window.location.href,'PopUp'+Date.now(),'left=1150,top=830,width=660,height=410,scrollbars=yes,location=no,status=no'); 
    
    除非您在一毫秒内打开多个弹出窗口,否则此操作应该有效。

    bookmarklet中的字符串“PopUp”是弹出窗口的名称。如果使用相同的名称创建另一个弹出窗口,则将重新使用已打开的窗口。
    如果你想避开这种行为,你必须每次创建一个带有唯一名称的弹出窗口

    以下bookmarklet代码将在弹出窗口的名称后附加一个时间戳,以创建一个唯一的名称:

    javascript:%20var%20WindowPopup%20=%20window.open(window.location.href,'PopUp'+Date.now(),'left=1150,top=830,width=660,height=410,scrollbars=yes,location=no,status=no'); 
    

    除非你在一毫秒内打开多个弹出窗口,否则这应该是可行的。

    谢谢Max。这很好,回答了我的第一个问题,这对我来说是最重要的。你能解释一下,为什么在我的原始代码中,如果我将书签从另一个站点选择到第一个站点,会打开第二个窗口吗?这种行为能被推翻吗?我对第三个问题不太在意,因为如果需要的话,我可以很容易地拥有两个单独的书签。浏览器可能会为每个站点保留一个单独的窗口列表。否则,如果example.com与somesite.com共享相同的弹出窗口名称,那么example.com可能会更改somesite.com弹出窗口的内容。这不是期望的行为。这就是为什么YourBookmarklet会在不同的站点上生成一个新窗口。在我看来,这是不可推翻的。要有一个提示询问是创建新的弹出窗口还是回收现有的弹出窗口,您必须使用
    prompt
    功能并创建一个新的弹出窗口名称,或者根据
    prompt
    的返回值使用以前的弹出窗口名称。您还必须将当前弹出窗口名称存储在不会被覆盖的位置。这很复杂,可能是一团糟。拥有两个单独的书签是非常简单的,而且每次都可以为你节省一次点击。公平地说,我想可能就是这样。提示会是一个很好的提示,不重复使用同一个窗口只是一个小小的不便,但不能为同一个站点打开新窗口是一个真正的痛苦,再次感谢你的帮助,感谢你花时间向我解释。谢谢Max。这很好,回答了我的第一个问题,这对我来说是最重要的。你能解释一下,为什么在我的原始代码中,如果我将书签从另一个站点选择到第一个站点,会打开第二个窗口吗?这种行为能被推翻吗?我对第三个问题不太在意,因为如果需要的话,我可以很容易地拥有两个单独的书签。浏览器可能会为每个站点保留一个单独的窗口列表。否则,如果example.com与somesite.com共享相同的弹出窗口名称,那么example.com可能会更改somesite.com弹出窗口的内容。这不是期望的行为。这就是为什么YourBookmarklet会在不同的站点上生成一个新窗口。在我看来,这是不可推翻的。要有一个提示询问是创建新的弹出窗口还是回收现有的弹出窗口,您必须使用
    prompt
    功能并创建一个新的弹出窗口名称,或者根据
    prompt
    的返回值使用以前的弹出窗口名称。您还必须将当前弹出窗口名称存储在不会被覆盖的位置。这很复杂,可能是一团糟。拥有两个单独的书签是非常简单的,而且每次都可以为你节省一次点击。公平地说,我想可能就是这样。提示会很好,不重复使用同一个窗口只是一个小小的不便,但无法为同一个站点打开新窗口是一个真正的痛苦,因此再次感谢您的帮助,感谢您花时间向我解释。