新しいタブでのJavascriptコード
ここに実現したいことを箇条書きで書いてください。
- 新しいタブを開き、そのページ内でのDOM操作
前提
現在Javascriptベースで作業効率化のスクリプトを作っています。
現在は対象のリンクを手動で開き、その新しく開いたページへ移動し、ブックマークレットを手動でクリックすると、動作するスクリプトがあります。
そのスクリプト改善しブックマークレットをクリックするだけで、新しいタブを自動で開きその新しいページで対象スクリプト実行してくれるようにしたいです。
[環境]
ChromeのDevTool上にて
■■な機能を実装中に以下のエラーメッセージが発生しました。
下記のコードでは新しいページで対象のクラスを選択してクリックするなどスクリプトが機能してくれません。アラートやコンソールも新しいタブを開く以前のページ(元のぺージ)で表示されます。
*AddeventListnerではなくて、直接newTab.alert()にすることで新しく開いたタブでもアラート文字が表示されることを確認しました。
newTab.document (newTabDoc)は古いブラウザ(新しく開く前のブラウザ)側のDocumentを指示しているようです(新しいブラウザ側のDocumentではない)
該当のソースコード
Javascript
1ソースコード 2// Open a new tab 3let newTab = window.open("http://test.com"); 4 5newTab.addEventListener("load", function() { 6 7let newTabDoc = newTab.document; 8setTimeout(()=>{ 9let test1 = newTabDoc.getElementsByClassName('class1')[1] 10test1.click(); 11let test2 = newTabDoc.getElementsByClassName('class2')[3] 12test2.click(); 13let test3 = newTabDoc.getElementsByClassName('class3')[3] 14test3.click(); 15} 16, 1000) }); 17 18### 試したこと 19 20CHATGPTを参考に色々試しました。 21例えばnewTab.document.write("<script>alert('Hello from the new tab!');</script>");など 22 23newTab.alert() や newTab.console.log() 24~~も試しておりましたが新しいブラウザの方で反応なしです。~~ 25 26newTab.onload = function(){ 27alert() 28let newTabDoc = newTab.document 29} 30 31の形で新しいブラウザ側へのアラート表示が出来ましたが、newTabDoc の中身は空のようです 32 33{+++++++++++++追記++++++++++++++++++} 34 35色々検索した限り同様のコードが示されていますが、うまく動作しません。 36 37どうぞご教示頂けますようよろしくお願い致します。 38 39 40