我是JavaScript的新手(昨天开始),目前正在尝试编写Tampermonkey用户脚本以在youtube.com/watch页面上集成Youtube Converter,但我遇到了一个奇怪的问题。
主要结构是我有一个youtube.com/watch的用户脚本,它在视频衬里下添加一个按钮到youtube转换器,带有一个拟合的查询字符串。然后我有一个youtube转换器的用户脚本,一旦准备好就会点击下载按钮。
它有效,但它工作太多而且在错误的地方......
问题是添加按钮的脚本开始在Youtube转换器选项卡中运行,单击下载按钮的脚本在Youtube转换器选项卡中开始,然后由于某种原因中途切换到Youtube选项卡。
按钮插入脚本在5秒内运行一次,因为在youtube上网站切换很奇怪,并且它不会重新触发Tampermonkey。
以下是Youtube视频下添加按钮的onclick:
function convertViaYoutubeconverter(){
var ytURL = window.location.href;
window.open("http://www.yt-mp3.com/watch?v="+ytURL.split("=")[1], '_blank');}
这是下载" clickbot":
alert("Where am I");
if(!document.getElementsByClassName("btn-dl download disabled")[0])
{
window.open(document.getElementsByClassName("btn-dl download")[0].getAttribute("href"),"_blank");
alert("Downloading");
}
警告的地方"我在哪里"在Youtube转换器选项卡中,但继续抛出无法读取属性的错误" getAttribute"在Youtube选项卡中为null,它引用clickbot脚本。
这里要求的是我的用户脚本的标题:
// ==UserScript==
// @name YoutubeConverter Autodownload
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match http://www.yt-mp3.com/*
// @grant none
// ==/UserScript==
和
// ==UserScript==
// @name YoutubeConverter in Youtube
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://www.youtube.com/*
// @grant none
// ==/UserScript==
我不知道问题所在,如果是我的代码,Chrome或Tampermonkey,但我认为stackoverflow无论如何都能提供帮助。提前致谢