paul_guo
小狐狸
小狐狸
  • UID45016
  • 注册日期2014-03-13
  • 最后登录2024-04-11
  • 发帖数44
  • 经验52枚
  • 威望0点
  • 贡献值46点
  • 好评度1点
阅读:3406回复:6

想修改一个油猴脚本,能让网页在当前页面打开

楼主#
更多 发布于:2020-09-18 14:07
百度等搜索引擎和导航网站特别喜欢单击之后原网页还留着。 。。我装超级拖拽不就是为了不要这样吗,于是我找了几个脚本,一开始是吧target blank 替换掉,可是还是有部分不太行,于是找到了一个
javascript: (function () {
     {
         var links = document.getElementsByTagName('a');
         for (i in links) {
             window.open(links[i].href);
         }
     }
})()

window.open(links[i].href);

打算换成
window.location(links[i].href);
但发现这个脚本好像本身就有问题,于是尝试把javascirpt这句去掉,for循环改
for (var i=0;i<links.length;i++){
但是都失败了。。。求助
taoww
非常火狐
非常火狐
  • UID39284
  • 注册日期2013-03-18
  • 最后登录2024-04-28
  • 发帖数628
  • 经验574枚
  • 威望0点
  • 贡献值110点
  • 好评度99点
1楼#
发布于:2020-09-18 14:26
他的for循环是有问题。但你问题的关键在于两点
1、window.location不是个函数,没有 window.location(url) 这种用法。该用 window.location.replace(url) 或 window.location.href = url 来设置当前页面的地址

2、它这个脚本是用新窗口/标签页打开当前页面上的所有链接,你这么改成了在当前页打开当前页面上的所有链接,肯定不是你想要的
paul_guo
小狐狸
小狐狸
  • UID45016
  • 注册日期2014-03-13
  • 最后登录2024-04-11
  • 发帖数44
  • 经验52枚
  • 威望0点
  • 贡献值46点
  • 好评度1点
2楼#
发布于:2020-09-18 14:34
taoww:他的for循环是有问题。但你问题的关键在于两点

1、window.location不是个函数,没有 window.location(url) 这种用法。该用 window.location.replace(url) 或 window.lo...
回到原帖
我改成了
var links = document.getElementsByTagName('a');
for (var i=0;i<links.length;i++){
    window.location.href = links<span style="font-style: italic;">.href
}</span>


好像还是不行
另外我目标就是当前页面打开
taoww
非常火狐
非常火狐
  • UID39284
  • 注册日期2013-03-18
  • 最后登录2024-04-28
  • 发帖数628
  • 经验574枚
  • 威望0点
  • 贡献值110点
  • 好评度99点
3楼#
发布于:2020-09-18 14:39
这就是我说的第二点。你这么个写法,是在当前页面将网页上所有链接同时一起打开,实际效果是只打开最后一个链接。
paul_guo
小狐狸
小狐狸
  • UID45016
  • 注册日期2014-03-13
  • 最后登录2024-04-11
  • 发帖数44
  • 经验52枚
  • 威望0点
  • 贡献值46点
  • 好评度1点
4楼#
发布于:2020-09-18 14:42
taoww:这就是我说的第二点。你这么个写法,是在当前页面将网页上所有链接同时一起打开,实际效果是只打开最后一个链接。回到原帖
原来如此,那还是只能替换target blank这个办法吗
taoww
非常火狐
非常火狐
  • UID39284
  • 注册日期2013-03-18
  • 最后登录2024-04-28
  • 发帖数628
  • 经验574枚
  • 威望0点
  • 贡献值110点
  • 好评度99点
5楼#
发布于:2020-09-18 14:47
本来把target=_blank改成target=_self就是最正统的做法了。
你说有部分不太行,那可能
1、是通过ajax动态加载的内容,是在脚本代码执行完毕后加载的,没有被改到
2、是通过js脚本打开的窗口,不受target属性管。这种情况比较麻烦,只能具体网站具体分析
paul_guo
小狐狸
小狐狸
  • UID45016
  • 注册日期2014-03-13
  • 最后登录2024-04-11
  • 发帖数44
  • 经验52枚
  • 威望0点
  • 贡献值46点
  • 好评度1点
6楼#
发布于:2020-09-18 15:02
taoww:本来把target=_blank改成target=_self就是最正统的做法了。
你说有部分不太行,那可能
1、是通过ajax动态加载的内容,是在脚本代码执行完毕后加载的,没有被改到
2、是通过js脚本打开的窗口,不受target属性管。这...
回到原帖
好的,谢谢了。。。另外百度会整一个奇葩的带引号的blank
游客

返回顶部