我正在为greasemonkey创建一个用户脚本,将<a>
中的链接更改为其他一些站点链接。目前,如果用户在键盘上按〜(也许是代字号),则会启动它。当文档为ready
时,我也希望它能够正常工作。如何设置两个条件?
或
运行jquery函数(更改url)。
这是我的代码
$(document).bind('keypress', function(e) {
if(e.keyCode==96){
$('a').each(function(){
this.href = this.href.replace('youtube.com/watch?v=', 'ytpak.com/?component=video&task=view&id=');
});
}
});
答案 0 :(得分:1)
我想我终于得到了你想要的东西。
我仍然认为这有点无意义,因为您的脚本将在加载页面时运行并更改链接。当用户按下键时,将无法执行任何其他操作。
但是,这应该可以解决问题:
// A common function to be called by both event handlers.
function doMyStuff(e) {
// When the page is loaded, you won't have a parameter so
// you check for undefined.
if (typeof e == "undefined" || e.keyCode == 96) {
$('a').each(function() {
this.href = this.href.replace('youtube.com/watch?v=', 'ytpak.com/?component=video&task=view&id=');
});
}
}
$(function () {
// On document ready.
console.log('Document loaded');
doMyStuff();
// Use keydown for better browser compatibility.
$(document).on('keydown', function(e) {
console.log('Key pressed');
doMyStuff(e);
});
});
Demo在浏览器控制台上查看日志消息(按F12键)。