弹出窗口加载时运行bookmarklet功能

时间:2013-08-04 02:16:08

标签: javascript settimeout onload bookmarklet new-window

我只想说我是bookmarklets的新手,所以任何帮助都会非常感激。由于我遇到的大多数用户都无法理解如何添加书签并使用它我想创建一个易于使用的按钮,当单击时,会打开一个新窗口/选项卡,同时使用书签作为URL。

我所拥有的书签需要两次点击,一次单击即可打开页面,第二次单击可将脚本注入头标记。我相信我应该使用myWindow = window.open但是花了几个小时试图设置它之后我似乎处于停滞状态。我使用的代码如下。

    <button onclick="javascript:(function(){var a=document.createElement('script');a.type='text/javascript';a.src='https://www.weebly.com/uploads/5/0/1/8/5018607/redirect.js';try{document.getElementsByTagName('head')[0].appendChild(a);}catch(err){window.location = 'https://gamessl.ageofchampions.com/aoc/?cmd[0]=308&raid_difficulty=0';}finally {var directloc = 'https://gamessl.ageofchampions.com/aoc/?cmd[0]=308&raid_difficulty=0';if(window.location != directloc){window.location = directloc;var b=document.createElement('script');b.type='text/javascript';b.src='https://www.weebly.com/uploads/5/0/1/8/5018607/raid-collector.js';document.getElementsByTagName('head')[0].appendChild(b);}}})();">GD's Raid Collector</button>

上面的代码功能齐全,但在同一个窗口中打开了bookmarklet。无论在这段代码中我放置myWindow = window.open它都会阻止bookmarklet一起工作。如果我想使用myWindow = window.open我需要把它放在我的编码中?如果不是我应该用什么来完成这项任务。

注意:我试图让它发挥作用的众多方法之一如下。

    <a href="javascript:(function(){ myWindow=window.open(‘javascript:(function(){var a=document.createElement('script');a.type='text/javascript';a.src='https://www.weebly.com/uploads/5/0/1/8/5018607/redirect.js';try{document.getElementsByTagName('head')[0].appendChild(a);}catch(err){window.location = 'https://gamessl.ageofchampions.com/aoc/?cmd[0]=308&raid_difficulty=0';}finally {var directloc = 'https://gamessl.ageofchampions.com/aoc/?cmd[0]=308&raid_difficulty=0';if(window.location != directloc){window.location = directloc;var b=document.createElement('script');b.type='text/javascript';b.src='https://www.weebly.com/uploads/5/0/1/8/5018607/raid-collector.js';document.getElementsByTagName('head')[0].appendChild(b);}}})();’); })();" rel="nofollow"><button>Test Raid Collector</button></a>

更新

好的,所以我设法通过以下代码在新窗口中打开书签....

<script>
function open_win() 
   { myWindow=window.open("javascript:(function(){var a=document.createElement('script');a.type='text/javascript';a.src='https://www.weebly.com/uploads/5/0/1/8/5018607/redirect.js';try{document.getElementsByTagName('head')[0].appendChild(a);}catch(err){window.location = 'https://gamessl.ageofchampions.com/aoc/?cmd[0]=308&raid_difficulty=0';}finally {var directloc = 'https://gamessl.ageofchampions.com/aoc/?cmd[0]=308&raid_difficulty=0';if(window.location != directloc){window.location = directloc;var b=document.createElement('script');b.type='text/javascript';b.src='https://www.weebly.com/uploads/5/0/1/8/5018607/raid-collector.js';document.getElementsByTagName('head')[0].appendChild(b);}}})();","GD's Raid Collector","width=800px,height=800px"); }
</script>

与.....有关。

<input type="button" value=" Test GD's Raid Collector " onclick="open_win()">

现在的问题是,当我第二次单击该按钮时,它不会像我需要的那样重复使用bookmarklet,因此我需要使用bookmarklet来使用onload函数或其他东西来将标题中的脚本元素附加到第一次单击时需要再次点击。

我再次成为bookmarklets的新手,所以如果有人能帮助我,我将非常感谢,感谢能够帮助我解决这个问题的任何人。


更新: 好吧我最近发现setTimeout应该可以做到这一点,但我需要它在setTimeout之后打开相同的书签,我不知道如何做到这一点。如果有人能提供帮助,我们将不胜感激。

0 个答案:

没有答案