2012-03-10 14 views
-3

私はGreaseMonkeyで何らかのワークフローを作成しようとしています。 がまだ定義されていない場合、私はjQueryのを定義するのGreaseMonkeyで始まる:開いているウィンドウのボタンをクリックする方法

/*! jQuery v1.7.1 jquery.com | jquery.org/license */ 
if (typeof jQuery == 'undefined') 
(function(a,b).......function(){return f})})(window); // packed version 
jQuery.noConflict(); 
/*! end of jQuery */ 

その後、それは定期的にWebページをチェック(jQuery.ajax /タイプ=取得/ URLを:window.location.href)。 いくつかの条件が満たされると、ウィンドウが質問をクリックして開いたウィンドウ上のボタンを取得する方法である

var url = <some page on the same domain> 
var opened = window.open(url, "XYZ"); 

を使用して作成されます。ページに、私は、このような

opened.document.getElementById('clickme').click() 
jQuery(opened.document).find('#clickme').click() 

しかし、どちらの作品として明白なことを試してみたボタン

<input type="button" id="clickme" 

があるとしましょう。これはおそらくGreaseMonkeyの問題なので、誰かが似たような働きをしているかどうかを見たいと思うでしょう。私の現在の回避策は、window.name = 'XYZ'の場合にボタンをクリックする開いたURLに対して別のGreaseMonkeyスクリプトを設定することです。

+0

@Richardakacyberkiwi何でも、これはあいまいな質問であるという事実を変えません – ajax333221

+0

これは漠然としています。なぜなら、(1)いくつかの異なる事柄ca nは「窓」とみなされ、**あなたがそれを開く方法は大いに重要です。 (2)同様に、いくつかのことを「ボタン」と見なすことができ、異なるタイプは異なる技法を必要とする。 (3)同じドメインであるかどうかは大きな違いをもたらすが、示されていない。 (4)Greasemonkeyの問題は、ほとんど常にページ固有です。詳細(指定されていない)は重要です。 –

答えて

1

質問はかなり曖昧です。私はあなたがwindow.openまたはその効果を何かを使用してウィンドウを作成していると仮定して、内部のDOMと対話したいと思います。あなたが定期的にJavaScriptでwindow変数使用すると、新しく開いたウィンドウへの参照を使用することができるはず

:あなたはjQueryのを持っていれば

window.document.getElementById(...).doStuff(...) 

var thatWindowReference = window.open(...); 
... 
thatWindowReference.document.getElementById(...).doStuff(...) 

なりウィンドウ内にロードされている場合は、

thatWindowReference.$('selector').doStuff(...) 

ho

thatWindowReference.document.getElementById('thatButton').click(); 

または使用してjQueryの:そのウィンドウ内のボタンをクリックをシミュレートするために、ワット

thatWindowReference.$('#thatButton').click(); 

編集

var w = window.open('about:blank'); 
w.document.write('<button id="test" onclick="alert(\'I was clicked\');">Hello</button>'); 
$(w.document.body).find('#test').click(); 
:新しいウィンドウ( test it out on jsFiddle)内部からのjQueryを使用せず
+0

しかし、そのページでjQuery(このページにロードされている)の良さを使うことはできますか? – RichardTheKiwi

+0

残念ながら、ドメインはjQueryを使用していません。 GreaseMonkeyでは、jQueryをロードする必要もあるので、新しいウィンドウにはロードされません。なぜjQuery(other.document).find(...)が動作しないのですか? – RichardTheKiwi

+0

'jQuery(otherWindow.document.body).find( 'selector')' –

関連する問題