如何去掉某歌镜像搜索结果中的网址前缀?
补充:在 Github 上查到站点建站的源码出处:jsproxy
进去看了一下,之所以你写的脚本没有成功有以下几个原因
- 该网站会拦截
a
标签的点击事件,你仅仅改它的href
没有用。 - 该网站重写了
window.open
方法,不管你跳什么地址都会给你加上它的地址,可以用GM_openInTab
代替。
解决思路:既然它拦截 a
标签的跳转,索性我们就直接把 a
标签直接改为其他标签,自己搞一个点击动作跳转。由于 window.open
被重写,我们就用 tampermonkey
提供给我们的GM_openInTab
这个方法调整即可。
// ==UserScript==// @name New Userscript// @namespace http://tampermonkey.net/// @version 0.1// @description try to take over the world!// @author You// @require https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js// @match *://js.dlolb.ml/*// @grant GM_addStyle// @grant GM_openInTab// ==/UserScript==GM_addStyle(`.span-a:hover, .span-a:hover h3 {text-decoration: underline;}.span-a {cursor: pointer;color: #1a0dab;}`);(function($) {'use strict';// 需要替换的a标签选择器const aSelector = '#search a';// 替换标签$(document).on('mouseenter', aSelector, function(e) {if($(this).attr('href').indexOf('https://www.google.com') === 0) {return;}$(this).replaceWith(function() {return $('<span />', {class: ($(this).attr('class') || '') + ' span-a',html: this.innerHTML,href: $(this).attr('href').replace('https://js.dlolb.ml/-----', ''),});});});// 替换后标签点击新窗口打开$(document).on('click', '.span-a', function(e) {GM_openInTab($(this).attr('href'), {active: true,insert: true,setParent: true,});});})(window.jQuery);
非常感谢@ekoooo!脚本有效,简明好懂,(゜- ゜)つロ
根据 ekoooo 的 上述提示 (实际应该说是指导),自己可以很轻易的在原链接旁加上一个“直达”链接,很方便!再次超级感谢! @ekoooo
因网络原因,重复评论,竟然无法删除 ......
脚本1看着没有任何问题。一般脚本不起作用就是执行时机不对。我们查看页面结构的时候 要看浏览器的开发者工具里的源码不能看右键查看源文件 打开后的源码
解决方案:把你要执行的脚本放在一个定时器里,延迟几秒执行 ,一般都能解决问题。
如何去掉某歌镜像搜索结果中的网址前缀?
本人纯 javascript 小白,不过平常有问题都会先搜索、也愿意折腾,是Greasy Fork 的多年用户,感谢开发者们的无私奉#!这是第一次提问,需求很简单,所以没从头啃 JS 基础,求高人指点一二。
场景:平常会用到各种某歌搜索镜像,但有些镜像的搜索结果会全部走代理(页面内的所有链接前会添加上该镜像的域名地址)目标:我想实现点击结果链接时不走代理,即打开搜索结果的真实地址环境:
Chrome v78.0.3904.70
+Tampermonkey v4.8.41
例子:这是一个某歌镜像如果搜索内容
xxx
,点击其中一个结果,打开的新标签页地址:https://js.dlolb.ml/-----https://www.ixxx.com/
。而我实际想要打开的是:https://www.ixxx.com/
尝试1(纯javascript):
尝试2(jQuery):
尝试1和尝试2我都是参照网上的脚本进行的修改。在 Chrome 的 Console 中尝试1只会返回最后一个搜索结果(即第10个)的真实链接;尝试2如果把搜索结果整个页面的 html 放到 https://jsfiddle.net/ 中,则可以成功替换。
问题:如果导入 Tampermonkey,以上尝试均不起任何作用,即没有替换任何内容(似乎无法在镜像的域名前缀生成后再进行替换),我不太懂里面的内在机制,所以肯请大佬指点一下,或者提示一下用什么英文关键词进行检索? 谢谢:-)