1

ブックマークレットは初めてなので、何か助けていただければ幸いです。私が遭遇したほとんどのユーザーは、ブックマークレットを追加して使用する方法を理解するのに苦労しているため、クリックすると新しいウィンドウ/タブが開き、ブックマークレットを URL として使用する使いやすいボタンを作成したいと考えました。

私が持っているブックマークレットでは 2 回のクリックが必要です。1 回のクリックでページが開き、2 回目のクリックでスクリプトが head タグに挿入されます。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>

上記のコードは機能しますが、同じウィンドウでブックマークレットを開きます。このコードのどこに myWindow=window.open を配置しても、ブックマークレットが一緒に機能しなくなります。myWindow=window.open を使用する場合、コーディングのどこに配置する必要がありますか? そうでない場合、このタスクを達成するために他に何を使用する必要がありますか。

注:これを機能させるために私が試みた多くの方法の1つは次のとおりです。

    <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()">

今の問題は、ボタンをもう一度クリックすると、必要なようにブックマークレットを再利用しないため、ブックマークレットで onload 関数などを使用して、最初にスクリプト要素をヘッダーに追加する必要があることです。 2 回目のクリックではなく、クリックされます。

繰り返しますが、私はブックマークレットを初めて使用するので、この問題の解決を手伝ってくれる人に事前に感謝します。


更新:わかりました最近、setTimeout でうまくいくはずですが、setTimeout の後に同じブックマークレットを開く必要があることがわかりました。これを行う方法がわかりません。誰かがそれを助けることができれば、それは大歓迎です。

4

0 に答える 0