Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Bookmarklet获取Youtube URL并转到另一个网站_Javascript_Youtube_Bookmarklet - Fatal编程技术网

Javascript Bookmarklet获取Youtube URL并转到另一个网站

Javascript Bookmarklet获取Youtube URL并转到另一个网站,javascript,youtube,bookmarklet,Javascript,Youtube,Bookmarklet,我正在尝试制作一个书签,以获取当前youtube url的视频id,并使用查询字符串中的视频id访问网站location.href帮助我获取当前url javascript:location.href='http://www.sampledomaincom/mybookmarkutility.html?v='+encodeURIComponent(location.href); 如何直接从url获取视频ID,并将其作为+'&videoid='+附加到此查询字符串。您需要一个书签来:直

我正在尝试制作一个书签,以获取当前youtube url的视频id,并使用查询字符串中的视频id访问网站
location.href
帮助我获取当前url

    javascript:location.href='http://www.sampledomaincom/mybookmarkutility.html?v='+encodeURIComponent(location.href); 

如何直接从url获取视频ID,并将其作为
+'&videoid='+

附加到此查询字符串。您需要一个书签来:直接从url获取视频ID,并将其作为
+'&videoid='+
附加到此查询字符串

window.location.search
提供了搜索部分。我们去掉前导的
,按
&
拆分,最后按
=
拆分每个结果值。如果现在有一个标识符
v
,那么我们继续(使用它的值),否则我们会发出错误警报。
现在让我们应用它,重新考虑代码并将其放入IIF中(以克服许多问题):

以及更新的正则表达式版本(略短):


希望这有帮助

这是一个懒散问题的懒散答案。对于“v=xyz”和“v=xyz-2&a=b”,您的正则表达式失败。对于“sav=y&v=xyz”这样的更为理论化的情况,它也失败了。(对于后人来说,如果正则表达式后来被更改,当前答案中的正则表达式是
/v=(\w*)&/
)@DG:You对
-
字符的看法是正确的(我不知道YT使用了它),理论上是失败的。我只是无法重现
v=xyz
-失败。不管怎样,用正则表达式,用一个更健壮的程序。我只是不能把它缩小,而把自己限制在ES3(不使用map等)。谢谢你给了我一个机会,让我在投票前挽回自己的损失。
// alert edition:
javascript:(function(L,t,i){for(i=(t=L.search.slice(1).split('&')).length;i--&&(t[i]=t[i].split('='))[0]!=='v';);~i&&(t=t[i][1])?alert('http://www.sampledomain.com/mybookmarkutility.html?v='+encodeURIComponent(L.href)+'&videoid='+t):alert('No videoID found.')})(window.location);

// working edition:
javascript:(function(L,t,i){for(i=(t=L.search.slice(1).split('&')).length;i--&&(t[i]=t[i].split('='))[0]!=='v';);~i&&(t=t[i][1])?L.href='http://www.sampledomain.com/mybookmarkutility.html?v='+encodeURIComponent(L.href)+'&videoid='+t:alert('No videoID found.')})(window.location);
// alert edition:
javascript:(function(L,t){(t=/[?&]v=([^&]+)/.exec(L.search))?alert('http://www.sampledomain.com/mybookmarkutility.html?v='+encodeURIComponent(L.href)+'&videoid='+t[1]):alert('No videoID found.')})(window.location);

// working edition:
javascript:(function(L,t){(t=/[?&]v=([^&]+)/.exec(L.search))?L.href='http://www.sampledomain.com/mybookmarkutility.html?v='+encodeURIComponent(L.href)+'&videoid='+t[1]:alert('No videoID found.')})(window.location);