Bookmarklet抓取Youtube的URL,然后转到另一个网站

Bookmarklet grabs Youtube URL and goes to another website

本文关键字:另一个 网站 然后 抓取 Youtube URL Bookmarklet      更新时间:2023-09-26

我正在尝试制作一个bookmarklet来获取当前youtube url的视频id,并在查询字符串中访问具有视频id的网站。location.href帮助我获得当前的url。

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

如何直接从url获取视频ID并将其附加到此查询字符串作为+'&videoid='+

您希望bookmarklet: 直接从url获取视频ID并将其附加到此查询字符串作为+'&videoid='+

window.location.search给出了搜索部分。我们去掉前面的?,将其除以&,最后将每个结果值除以=。如果现在有一个标识符v,那么我们继续(使用它的值),否则我们警告一个错误…
现在让我们应用它,重构代码并将其放入IIF(以克服许多问题):

// 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);

和一个更新的regex版本(它有点短):

// 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);

希望这对你有帮助!