his
his
小狐狸
小狐狸
  • UID50121
  • 注册日期2015-05-30
  • 最后登录2019-05-06
  • 发帖数21
  • 经验32枚
  • 威望0点
  • 贡献值44点
  • 好评度1点
  • 社区居民
阅读:4686回复:12

百度贴吧去登录提示脚本失效,求破

楼主#
更多 发布于:2015-10-25 13:11
这个贴吧去登录提示脚本翻页的时候失效,
https://greasyfork.org/zh-CN/scripts/9922-%E8%B4%B4%E5%90%A7%E5%8E%BB%E7%99%BB%E5%BD%95%E6%8F%90%E7%A4%BA/code

经排查发现是贴吧页面这个脚本的作用:
http://tb1.bdstatic.com/??/tb/_/login_dialog_3a1b0d9.js,/tb/_/tdou_open_type_a72e1ed.js,/tb/_/base_user_data_9570710.js,/tb/_/base_dialog_user_bar_0cf546a.js,/tb/_/qianbao_cashier_dialog_bd75cbe.js,/tb/_/qianbao_purchase_member_a6a5833.js,/tb/_/messenger_d189256.js,/tb/_/cashier_dialog_d52cf7c.js,/tb/_/pay_member_df609bf.js,/tb/_/event_center_2327b16.js,/tb/_/tb_lcs_d9bdd44.js,/tb/_/flash_lcs_ccd5d3e.js,/tb/_/new_message_system_0c199ef.js,/tb/_/join_vip_dialog_9242ef7.js,/tb/_/user_head_146adc6.js,/tb/_/js_pager_6b8af39.js,/tb/_/wallet_dialog_a552cbd.js,/tb/_/card_a7ea147.js,/tb/_/userbar_ee09ba5.js

求大神修改
yfdyh000
千年狐狸
千年狐狸
  • UID29079
  • 注册日期2009-06-07
  • 最后登录2022-05-18
  • 发帖数2262
  • 经验1390枚
  • 威望0点
  • 贡献值52点
  • 好评度139点
  • 社区居民
  • 最爱沙发
  • 忠实会员
1楼#
发布于:2015-10-25 13:31
测试了,没看到问题,翻页和楼中楼显示都正常,除了底下还会有登录提示栏。
his
his
小狐狸
小狐狸
  • UID50121
  • 注册日期2015-05-30
  • 最后登录2019-05-06
  • 发帖数21
  • 经验32枚
  • 威望0点
  • 贡献值44点
  • 好评度1点
  • 社区居民
2楼#
发布于:2015-10-26 16:35
yfdyh000:测试了,没看到问题,翻页和楼中楼显示都正常,除了底下还会有登录提示栏。回到原帖
就是底下翻页这个失效
yfdyh000
千年狐狸
千年狐狸
  • UID29079
  • 注册日期2009-06-07
  • 最后登录2022-05-18
  • 发帖数2262
  • 经验1390枚
  • 威望0点
  • 贡献值52点
  • 好评度139点
  • 社区居民
  • 最爱沙发
  • 忠实会员
3楼#
发布于:2015-10-26 18:01
his:就是底下翻页这个失效回到原帖
最底下的翻页链接吗,也没问题
his
his
小狐狸
小狐狸
  • UID50121
  • 注册日期2015-05-30
  • 最后登录2019-05-06
  • 发帖数21
  • 经验32枚
  • 威望0点
  • 贡献值44点
  • 好评度1点
  • 社区居民
4楼#
发布于:2015-10-27 18:06
yfdyh000:最底下的翻页链接吗,也没问题回到原帖
每个贴子的翻页是可以,但是贴吧下面的翻页点击就不行,一进吧底下那个
yfdyh000
千年狐狸
千年狐狸
  • UID29079
  • 注册日期2009-06-07
  • 最后登录2022-05-18
  • 发帖数2262
  • 经验1390枚
  • 威望0点
  • 贡献值52点
  • 好评度139点
  • 社区居民
  • 最爱沙发
  • 忠实会员
5楼#
发布于:2015-10-28 09:23
his:每个贴子的翻页是可以,但是贴吧下面的翻页点击就不行,一进吧底下那个回到原帖
用了脚本也没问题,你再试试吧。或者说具体哪个贴吧不行,虽然应该一样吧。
his
his
小狐狸
小狐狸
  • UID50121
  • 注册日期2015-05-30
  • 最后登录2019-05-06
  • 发帖数21
  • 经验32枚
  • 威望0点
  • 贡献值44点
  • 好评度1点
  • 社区居民
6楼#
发布于:2015-10-28 12:57
yfdyh000:用了脚本也没问题,你再试试吧。或者说具体哪个贴吧不行,虽然应该一样吧。回到原帖
随便测试了几个吧,有些吧可以有些吧失效,大多数失效的

失效:
http://tieba.baidu.com/f?kw=情感
http://tieba.baidu.com/f?kw=曼联
http://tieba.baidu.com/f?kw=喵星人
http://tieba.baidu.com/f?&kw=李毅

可以:
http://tieba.baidu.com/f?kw=行尸走肉
http://tieba.baidu.com/f?kw=西部
http://tieba.baidu.com/f?kw=快乐大本营
http://tieba.baidu.com/f?kw=花千骨电视剧
yfdyh000
千年狐狸
千年狐狸
  • UID29079
  • 注册日期2009-06-07
  • 最后登录2022-05-18
  • 发帖数2262
  • 经验1390枚
  • 威望0点
  • 贡献值52点
  • 好评度139点
  • 社区居民
  • 最爱沙发
  • 忠实会员
7楼#
发布于:2015-10-28 13:28
his:随便测试了几个吧,有些吧可以有些吧失效,大多数失效的

失效:
http://tieba.baidu.com/f?kw=情感
http://tieba.baidu.com/f?kw=曼联
http://tieba.baidu.co...
回到原帖
试了第一个,确实会这样。PageData.user.is_login 的结果一直被重置回0。不知道怎么处理。
https://greasyfork.org/zh-CN/scripts/9922-%E8%B4%B4%E5%90%A7%E5%8E%BB%E7%99%BB%E5%BD%95%E6%8F%90%E7%A4%BA/feedback 给脚本作者发反馈试试吧。
taoww
非常火狐
非常火狐
  • UID39284
  • 注册日期2013-03-18
  • 最后登录2025-04-21
  • 发帖数662
  • 经验607枚
  • 威望0点
  • 贡献值110点
  • 好评度114点
8楼#
发布于:2015-10-28 15:20
百度用了Object.freeze,只能搞个劫持了

// ==UserScript==
// @name         贴吧去登录提示
// @namespace    none
// @version      0.1
// @description  免登录贴吧查看楼中楼.翻页
// @match        http://tieba.baidu.com/*
// @include      http://tieba.baidu.com/*
// @run-at       document-start
// @grant        none
// ==/UserScript==
     
var hack = document.createElement('script');
hack.innerHTML = "Object.freeze = function(obj){};";
document.documentElement.appendChild(hack);
     
document.addEventListener("DOMContentLoaded", function(){
   var islogin = document.createElement('script');
   islogin.innerHTML = "PageData.user.is_login = true;";
   document.head.appendChild(islogin);
}, false);
his
his
小狐狸
小狐狸
  • UID50121
  • 注册日期2015-05-30
  • 最后登录2019-05-06
  • 发帖数21
  • 经验32枚
  • 威望0点
  • 贡献值44点
  • 好评度1点
  • 社区居民
9楼#
发布于:2015-11-07 11:00
taoww:百度用了Object.freeze,只能搞个劫持了

// ==UserScript==
// @name         贴吧去登录提示
// @namespace    none
// @version      0.1
/...
回到原帖
谢谢大哥
现在有个bug,就是贴吧顶部那个登录不见了
taoww
非常火狐
非常火狐
  • UID39284
  • 注册日期2013-03-18
  • 最后登录2025-04-21
  • 发帖数662
  • 经验607枚
  • 威望0点
  • 贡献值110点
  • 好评度114点
10楼#
发布于:2015-11-08 19:08
his:谢谢大哥
现在有个bug,就是贴吧顶部那个登录不见了
回到原帖
从原理上讲几乎不可能是这个脚本导致的,我这里也无法重现。
顶部的登录是贴吧的一个脚本控制的,可能是其他因素导致的无法载入?
ctrl+shift+k打开控制台,看看加载页面过程中报了什么错
his
his
小狐狸
小狐狸
  • UID50121
  • 注册日期2015-05-30
  • 最后登录2019-05-06
  • 发帖数21
  • 经验32枚
  • 威望0点
  • 贡献值44点
  • 好评度1点
  • 社区居民
11楼#
发布于:2015-11-12 10:20
taoww:从原理上讲几乎不可能是这个脚本导致的,我这里也无法重现。
顶部的登录是贴吧的一个脚本控制的,可能是其他因素导致的无法载入?
ctrl+shift+k打开控制台,看看加载页面过程中报了什么错
回到原帖
http://tieba.baidu.com/f?kw=%E5%96%B5%E6%98%9F%E4%BA%BA
这个吧能看见这问题


好像有两个错误,不懂
所用的 getPreventDefault() 已不赞成使用。请使用 defaultPrevented 替代。
ReferenceError: PageData is not defined
taoww
非常火狐
非常火狐
  • UID39284
  • 注册日期2013-03-18
  • 最后登录2025-04-21
  • 发帖数662
  • 经验607枚
  • 威望0点
  • 贡献值110点
  • 好评度114点
12楼#
发布于:2015-11-16 23:39
我知道你的意思了。那两个错误和这个问题没什么关系。
原因是把PageData.user.is_login设置成true后,页面脚本会认为是真的已经登录了,就不给你再显示登录了。
稍微延时一下就好了,下面我设置是延时2000毫秒即2秒,一般应该够用了,你可以自行适当加大点

// ==UserScript==
// @name         贴吧去登录提示
// @namespace    none
// @version      0.1
// @description  免登录贴吧查看楼中楼.翻页
// @match        http://tieba.baidu.com/*
// @include      http://tieba.baidu.com/*
// @run-at       document-start
// @grant        none
// ==/UserScript==
       
var hack = document.createElement('script');
hack.innerHTML = "Object.freeze = function(obj){};";
document.documentElement.appendChild(hack);
       
document.addEventListener("DOMContentLoaded", function(){
   setTimeout(function() {
      var islogin = document.createElement('script');
      islogin.innerHTML = "PageData.user.is_login = true;";
      document.head.appendChild(islogin);
   }, 2000);
}, false);
游客

返回顶部