gpt4 book ai didi

javascript - 转换 JavaScript 书签以便与 Greasemonkey 一起使用?

转载 作者:行者123 更新时间:2023-11-28 21:19:11 25 4
gpt4 key购买 nike

我正在尝试获取以下书签作为 Greasemonkey 脚本来解决 stackexchange 站点的可访问性错误。

javascript:(function(){$('a,%20.vote-up-off,%20.vote-down-off,%20.star-off').attr({role:'link',tabindex:'0'});})()

当我删除 function() 并将其放入以下 ​​Greasemonkey 脚本中时,它不起作用。

// ==UserScript==
// @name StackExchange access
// @description Enables y-aria stuff on stackoverflow
// @include *
// ==/UserScript==
$('a,%20.vote-up-off,%20.vote-down-off,%20.star-off').attr({role:'link',tabindex:'0'});
alert("worldzz");

我猜测我需要以某种方式从 Greasemonkey 访问文档对象,但不知道如何执行此操作。

我知道脚本被调用,因为如果我注释掉 $('a,%20.vote-up-off,%20.vote-down-off,%20.star-off') .attr({role:'link',tabindex:'0'}) 行我的警报被触发。

最佳答案

  1. greasemonkey 脚本无法直接访问 jQuery。 Greasemonkey 将脚本沙箱到其自己的范围内,因此您需要在页面全局范围内访问的任何内容(例如 jQuery)都必须通过 window.wrappedJSObject
  2. 进行访问
  3. 您需要将 Greasemonkey 版本中的所有 %20 替换为空格字符
  4. 您需要将 jQuery DOM 操作放入就绪函数中,以便在元素出现在屏幕上之前它不会运行。

代码:

// ==UserScript==
// @name StackExchange access
// @description Enables y-aria stuff on stackoverflow
// @include *
// ==/UserScript==
( function( global )
{
var $;

if( global.jQuery )
{
$ = global.jQuery;

$( function()
{
$( 'a, .vote-up-off, .vote-down-off, .star-off' )
.attr( {
role:'link',
tabindex:'0'
} );
} );
}
}( window.wrappedJSObject ) );

关于javascript - 转换 JavaScript 书签以便与 Greasemonkey 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6818697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com