阅读:4687回复:12
百度贴吧去登录提示脚本失效,求破
这个贴吧去登录提示脚本翻页的时候失效,
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 求大神修改 |
|
1楼#
发布于:2015-10-25 13:31
测试了,没看到问题,翻页和楼中楼显示都正常,除了底下还会有登录提示栏。
|
|
2楼#
发布于:2015-10-26 16:35
|
|
3楼#
发布于:2015-10-26 18:01
|
|
4楼#
发布于:2015-10-27 18:06
|
|
5楼#
发布于:2015-10-28 09:23
|
|
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=花千骨电视剧 |
|
7楼#
发布于:2015-10-28 13:28
his:随便测试了几个吧,有些吧可以有些吧失效,大多数失效的试了第一个,确实会这样。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 给脚本作者发反馈试试吧。 |
|
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); |
|
9楼#
发布于:2015-11-07 11:00
|
|
10楼#
发布于:2015-11-08 19:08
|
|
11楼#
发布于:2015-11-12 10:20
taoww:从原理上讲几乎不可能是这个脚本导致的,我这里也无法重现。http://tieba.baidu.com/f?kw=%E5%96%B5%E6%98%9F%E4%BA%BA 这个吧能看见这问题 好像有两个错误,不懂 所用的 getPreventDefault() 已不赞成使用。请使用 defaultPrevented 替代。 ReferenceError: PageData is not defined |
|
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); |
|