2011-07-03 6 views
3

私はかなりGoogle+を使用しています。自分が非常に頻繁に行っていることの1つは、左側のサイドバーの[その他]ボタンをクリックして表示されていないサークルにアクセスすることです。私はページロード時に私のために "More"リンクをアクティブにするユーザスクリプトを書こうとしています。これは、「詳細」の要素点で最大サイドバーのDOM構造である:jQueryを使用してuserscriptを使用してplus.google.comのこの要素でアクションをトリガーするにはどうすればよいですか?

<div class="a-b-la-A"> 
<h2 class="a-za">Navigation</h2> 
<a href="/welcome" target="_top" class="d-h a-b-h-Jb a-la-h a-la-aH ">Welcome</a> 
<div class="a-la-Dd"></div> 
<a href="/stream" target="_top" class="d-h a-b-h-Jb a-la-h a-la-aH a-la-h-Pa">Stream</a>  
<div class="a-la-h-ga"><a href="/stream/circles/p5653c3hhy60aadf997" target="_top" class="d-h a-b-h-Jb a-la-h a-la-Rb-h a-b-la-Rb-h">Friends</a></div> 
<span role="button" class="d-h a-b-la-gc-h a-la-h a-la-hA" tabindex="0">More<span class="a-b-la-bw a-la-tb-q">▾</span></span> 

...と、ここで私が働いているの抜粋です:

$('div.a-b-la-A span').filter('[role="button"]:contains("More")').trigger('click'); 

は、私が選択し、「詳細を操作することができます'がうまく要素とhere's the bg-color set to yellow

$('div.a-b-la-A span').filter('[role="button"]:contains("More")').css({'background-color': 'yellow'}); 

...しかし、私はまだ要素に結び付け機能をアクティブにすることはできません。私が試したもの:代わりに、トリガーの

  1. は(.click使用してみました)(「クリック」)
  2. はありません成功
  3. でFirebugのとイベントのスパイを使用して、クリックでトリガ取得機能を特定しようとしました'クリック'イベントをトリガーする代わりに、.mousedown()とトリガー( 'mousedown')を試しました

他のアイデアをお持ちですか?

+1

NB: '$( 'div.ab・ラ・スパン')をフィルタリング( '[役割= "ボタンを"]:含まれています( "詳細")は、')'することができます'$( 'div.ab-la-A span [role =" button "]:contains(" More ")')' – RoToRa

答えて

1

低レベルのコードを使用してJSリンクを起動します。このような何かが動作するはずです:

var clickEvent = document.createEvent ("HTMLEvents"); 
clickEvent.initEvent ("click", true, true); 

var jNode  = $('div.a-b-la-A span').filter('[role="button"]:contains("More")'); 
if (jNode.length != 1) 
    alert ('Oops! Found too many (or no) "More" links'); 

jNode[0].dispatchEvent (clickEvent); 
+0

あなたは正しい考えがあります。 var moreLink = $( 'div.ab-la-A span')。filter( '[role =])は、HTMLEventの代わりにMouseEventのような小さな変更を加えなければならなかったので、 "button"]:contains( "More") '); var clickEvent = document.createEvent( 'MouseEvents'); clickEvent.initEvent( 'click'、true、true); moreLink [0] .dispatchEvent(clickEvent);ありがとう。 – vjk2005

+0

それはあなたのために働いてうれしい。あなたが 'HTMLEvents'の代わりに' MouseEvents'を使用しなければならなかったというのは奇妙です。通常、Firefoxはどちらの方法でも動作します。あなたは(また)Chromeを使用していますか? –

+0

はい、Chromeを使用しています。 – vjk2005

関連する問題