2017-04-18 4 views
2

DOM内の要素を見つけることができませんコンソールにインストールされますが、ユーザースクリプトとしてインストールされたChromeでは効果がないようです。UserScriptは、私はこの単純なユーザースクリプトは、YouTubeのページ上のいくつかのリンクを変更することを意図してい

window.onloadwindow.addEventListener()を使用して、ページがロードされた後にコードを実行しようとしましたが、コードを動作させるのに役立たなかった。

このコードをユーザースクリプト内で動作させるにはどうすればよいですか?メタブロックを使用して

+2

興味深いことに、全体を 'setTimeout'の中に投げ込もうとしてください。私は競合状態がユーザースクリプトを行う際に共通の問題を発見しました...何かを始めるには寛大なものを与えてください – Shadow

+0

質問にVMのビデオタイトルコンテンツクラスを含むHTMLコードの一部を追加してください –

+0

Pleaseこのスクリプトとhtml内のユーザースクリプトをどのように呼び出すかを示します。 – Soviut

答えて

1

@run-atが注入(したがって実行)したときに属性を使用するには、を決定することを可能にするコード

あなたがロードを完了するためにDOMを待つ必要があるとして、あなたは

// @run-at document-end 
を使用しますこのコードは、「ダイナミック」に依存している場合は、おそらくあなたは

// @run-at document-idle 

を必要とする、デフォルトのようですよう

たが、コンテンツがロードされている - あなたは運が悪いかもしれませんし、DOMの変更を監視する必要があります(MutationObserverを使用)

この場合、できるだけ早くスクリプトを注入したい

// @run-at document-start 

setTimeoutは非常に最後の手段である必要があります。

+0

ねえ、JavaScriptをどこから学んだのか知りたいです。 –

+0

私は浸透法でjavascriptを学んでいました(愚かな答えですが、真実はjavascriptを正式に学んだことはありません - 私はそれだけです) –

+0

'@ run-at'はTampermonkey/Greasemonkeyの外で動作しますか?私はusercriptマネージャを使用せず、 'chrome:// extensions'にuserscriptsをインストールするだけです。このユーザースクリプトを他の人と共有しようと思っています。特に、このような単純なコードの場合、「この他の拡張機能をインストールする必要があります」と言わないでください。 – user7881662

関連する問題