我正在大量使用Google+,我发现自己经常做的一件事就是点击左侧边栏中的“更多”按钮来访问隐藏在视野中的圈子。我正在尝试编写一个用户脚本,它将在页面加载时为我激活“更多”链接。这是侧边栏的DOM结构,直到“更多”元素:
<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');
我可以选择并操纵'More'元素,并here's the bg-color set to yellow使用:
$('div.a-b-la-A span').filter('[role="button"]:contains("More")').css({'background-color': 'yellow'});
...但我仍然无法激活与元素相关的功能。我尝试过的事情:
还有其他想法吗?
答案 0 :(得分: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);