2011-07-03 5 views
3

저는 Google+를 상당히 많이 사용하고 있습니다. 자주 자주하는 한 가지는 왼쪽 사이드 바의 '더보기'버튼을 클릭하여보기에서 숨겨져있는 내 서클에 액세스하는 것입니다. 페이지로드시 "추가"링크를 활성화 할 사용자 스크립트를 작성하려고합니다. 이것은 "추가"요소 개까지 사이드 바의 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. '클릭'이벤트를 트리거하는 대신 .mousedown() 및 trigger ('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 motion = $ ('div.ab-la-A span'). filter ('[role =])}}}}}}}}}} "button"] : contains ("More") '); var clickEvent = document.createEvent ('MouseEvents'); clickEvent.initEvent ('click', true, true); moreLink [0] .dispatchEvent (clickEvent); 감사. – vjk2005

+0

다행이 당신을 위해 일했습니다. 이상한 것은'HTMLEvents' 대신'MouseEvents'를 사용해야한다는 것입니다. 보통 Firefox는 어느 쪽이든 작동합니다. 당신도 (또한) 크롬을 사용하고 있습니까? –

+0

네, Chrome을 사용합니다. – vjk2005