問題タブ [tampermonkey]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3076 参照

mouseevent - グリースモンキーにたくさんのリンクを新しいタブで 1 つずつ開くにはどうすればよいですか?

上記のようなリンクがいくつかあります


そして、最初のステップで停止します。スクリプトトリガーでそれぞれを開くことができません。これが私がこれまでに持っているものです:


しかし、それは機能しません。また、それらを新しいタブで1つずつ開く方法もわかりません。

0 投票する
2 に答える
17228 参照

javascript - 同じページで Greasemonkey スクリプトを複数回実行しますか?

私は、Greasemonkey、javascript、実際にはすべての UI にまったく慣れていません。

要件: ユーザー スクリプトは、ページの読み込み後に GS によって 1 回実行されます。ただし、更新せずに同じスクリプトを複数回実行する必要があります

ユースケース: たとえば、Amazon.com の検索は Ajax を使用して行われます。検索結果にカスタム要素を埋め込む必要があります。

同じページで検索が行われるたびに、結果とともに自分のコンテンツを search-results-div に挿入する必要があります (ページの更新はありません)。

私の現在のスクリプトは、ページの更新でのみ実行されます。

上記の説明が明確であることを願っています。助けてください。

0 投票する
1 に答える
4822 参照

javascript - 応答を返す前にページがレンダリングされるのを待つようにAJAXget-requestを取得するにはどうすればよいですか?

このサイト(Site1)のページ用のGreasemonkeyスクリプトを作成中です。Site1にはさまざまな種類の取引やオファーがあり、私のGMスクリプトは次のことを目的としています。

Site1のオファーにアクセスすると、スクリプトは Site2にクエリを実行して、このホテルがSite2にもリストされているかどうかを確認します。その場合は、Site2の検索結果をSite1に表示します。

問題は、Site2が進行状況バー(「結果の読み込み」)を表示してから、結果を表示することです。したがって、私のAjaxリクエストは常に空の結果を返し、次のようになります(赤いボックスの部分を参照):(
クリックすると拡大画像が表示されます)未完成の結果


ただし、実際には、次のように、Site2からの検索結果の完全なコンテンツが含まれている必要があります:(
クリックすると拡大画像が表示されます)完成した結果


同期Ajaxリクエストを試しましたがGM_xmlhttpRequest、役に立ちませんでした。

これは、サイト2の問題のあるプログレスバーです
(クリックすると拡大画像が表示されます)ステータスバー


Site1に応答を返す前に、Site2での検索が完全にレンダリングされるのを待つようにAJAXリクエストを取得するにはどうすればよいですか?

参考までに、私の完全に機能するスクリプトコードはpastebin.comにあります。

これは関連するスニペットです:

0 投票する
1 に答える
7759 参照

javascript - ユーザースクリプトからiframeのJavaScriptにアクセスするにはどうすればよいですか?

ChromeユーザースクリプトまたはTampermonkeyスクリプトを使用して、次の構造のページを変更しようとしています。

iframeは同一生成元です。

にある関数にアクセスする必要がありますiframe#main。私はそれを手に入れるために使うことができると思っunsafeWindowたが、私は何も得られないか、undefined戻ってきた。

私はたくさんのことを試しました:

  • で新しいスクリプト要素を作成しようとしましたが、またはを使用iframeしても親にアタッチされます$('frame#main').contents().append(script)$('frame#main').contents()[0].createElement('script')

  • window.frames["#main"].contentWindowundefinedを返します。

現時点では思い出せないことを他にもたくさん試しましたが、すべてのアイデアを使い果たして、何よりもゴミを入力していると感じています。iFrame
ので遊ぶ方法がわかりません。unsafeWindow

0 投票する
2 に答える
11304 参照

jquery - Jquery と Tampermonkey

だから私のコンソールは私にこのメッセージを出しています -

私のユーザースクリプトでは、ページへのjqueryの組み込みを自動化する機能を実行していますが、src属性としてjqueryのURLを持つスクリプトタグが表示されるため、jqueryがロードされているようです。

参考までに、関数はここにあります-

したがって、なぜ $ が定義されないのかわかりません。理由はありますか?

アップデート-

@require を使用すると、問題が解決します。

0 投票する
3 に答える
7222 参照

javascript - Greasemonkey 1.0 の jQuery は、jQuery を使用する Web サイトと競合します

数日前に新しい Greasemonkey 1.0 がリリースされて以来、jQuery を使用しているすべてのサイトと、Greasemonkey スクリプトで jQuery を使用しているすべてのサイトで、スクリプトが正しく実行されません。GS スクリプト (@requireメタデータを使用) にある jQuery は、ページの jQuery と競合します。これは新しい@grantコードによるものです。

ドキュメントを読みましたが、GS スクリプトをサンドボックスで再度実行する方法がわかりません。唯一のオプションは、GS API へのアクセスを許可するか、許可しないでスクリプトを実行するかのいずれかのようです。これは、何十もの GS スクリプトを実行するように設計したときにまったく機能しません。セキュリティの制限があり、そのように好きです。

0 投票する
2 に答える
1671 参照

jquery - @require-ing jQuery はページの $ 変数を上書きします

スクリプト ファイルに次の行を追加して@require、Greasemonkey スクリプトの jQuery を実行しています。

そしてそれは非常にうまく機能します。$('#id')DOM へのアクセスに使用できます。

ただし、$「実際の」ページの変数が変更されています ( $jQuery 1.2.xx はここにあります):$.include定義されていないエラーが発生します。

Greasemonkey のサンドボックス モデルは、ターゲット ページの変数が上書きされるのを防ぐと思いましたか?

JavaScript ライブラリを含めても「実際の」Web サイトには影響せず、自分の Greasemonkey スクリプトだけに影響を与えるようにするにはどうすればよいですか?

0 投票する
2 に答える
1184 参照

event-handling - ユーザースクリプトによって追加されたボタン [GreaseMonkey/TamperMonkey] がフォームを送信できないようにする方法

UserScript問題のコードは a の一部であり、通常の DOM ルールと Javascript メソッドは機能しないということから始めましょう。

状況は次のとおりです。

オンライン チャット サイトとやり取りする UserScript を作成しました。buttonユーザースクリプト内で生成されるものがいくつかあります。これらのボタンの一部はフォーム内にありますが、多くはそうではありません。

GreaseMonkey を介して追加された要素は、2 つの世界に存在します。それらはページ DOM に存在し、UserScript のわずかに高い世界に存在します。つまり、これらの行は次のようになります。

残りのUserScriptアクションが実行されないようにしますが、ボタンによるフォームの送信は停止しません。

回避策として、 のspan代わりに要素を構築していbuttonます。これは機能しますが、実際にはチャット ルームの視覚的なレイアウトが崩れます。

投稿UserScriptsを防ぐために追加された要素を防ぐ方法を知っている人はいますか? formそれができなければ、誰かがspanネイティブのように見せる方法を知っていることを夢見ますbutton.

編集:動作しているように見えるソリューションがありますが、すべての UserScript 環境で完全にテストしていません:

0 投票する
3 に答える
1083 参照

javascript - ユーザースクリプトを使用するときにマウスクリックを検出するにはどうすればよいですか?

毎日使っているウェブサイトにいくつかの機能を追加してみました。特定のリンクをクリックすると一部の要素を削除する関数を追加したいと思います。そこで、Tampermonkeyを使用して、次のコードをテストしようとしました。

悲しいことに、それは機能しません。これはそれが言うことです:

ReferenceError:$が定義されていません

at removeUsers(eval at(eval at eventHandler(eval at <anonymous> (chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/content.js:56:21)))、 <anonymous>:65:5)

正直なところ、これらが何を意味するのかわかりません。