我非常频繁地使用 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');
我可以很好地选择和操作“更多”元素,这里的 bg-color 设置为黄色:
$('div.a-b-la-A span').filter('[role="button"]:contains("More")').css({'background-color': 'yellow'});
...但我仍然无法激活与元素相关的功能。我尝试过的事情:
- 尝试使用 .click() 而不是 trigger('click')
- 尝试使用 Firebug 和 Event Spy 识别点击时触发的功能,但没有成功
- 尝试了 .mousedown() 和 trigger('mousedown') 而不是触发 'click' 事件
还有其他想法吗?