阅读:4322回复:14
自己写油猴脚本还是不行啊。简单的文本居中都做不到。。求帮忙。
在360doc这个网站里
比如随便打开它某个文章页面 http://www.360doc.com/content/16/1231/13/413468_619089878.shtml 顶部header 右侧推荐 可以很轻松地用 $(document).ready(function() { $('div.header').remove(); }); 还有 $(document).ready(function() { $('div.a_right').remove(); }); 给干掉 然后我想把正文居中 在页面右键查看元素, 发现如果把其中有一行 <div class="doc360article_content" style="width: 1016px;"> 里的1016像素改成686像素 文本就会居中了 但当我试着在脚本里添加上 $(document).ready(function() { $("div.doc360article_content").width("686px"); }); 刷新页面,却发现居中效果只是一闪而过,页面加载完成后马上就恢复了 查看元素,发现 <div class="doc360article_content" style="width: 1016px;"> 这一行并没有变 因为网上没有现成的样式脚本。只能自己动手,上面那些代码也是google出然后照抄的 我本身是对greasemonkey还有js什么的一窍不通的,只想单纯的想改这一个页面 求懂的大拿帮我看看吧,多谢了。。 (还有就是去掉顶部的header后。 页面上方留有一个空白。 不知道能不能也给同时去掉呢? 当然如果实在不行也无所谓了,只要文本能居中就可以了 不知为什么论坛传不上图片啊,谢谢看到的人有耐心能看完文字版的描述) |
|
1楼#
发布于:2017-04-12 12:07
行为js、样式css,居中是样式,上Stylish
@-moz-document regexp("^https?://www.360doc.com/content.*") { .doc360article_content { width: 686px !important; } .doc360article_content > div:first-child { display: none; } } |
|
2楼#
发布于:2017-04-13 08:44
十分感谢!!
|
|
3楼#
发布于:2017-04-13 08:49
为什么讨论火狐的论坛在火狐里点回复死活没反应 结果用edge才能回
感谢楼上 我只有个油猴 刚才又下了个stylish 代码放进去就看到效果了 棒棒哒 不过我还是不太懂 不是都说万能的油猴子吗?我以为会比stylish强大很多 也有搞不定的? |
|
4楼#
发布于:2017-04-13 09:35
|
|
|
5楼#
发布于:2017-04-13 16:54
|
|
|
6楼#
发布于:2017-04-13 16:57
|
|
|
7楼#
发布于:2017-04-13 17:08
|
|
|
8楼#
发布于:2017-04-13 17:32
在 360doc 这个场合
> 刷新页面,却发现居中效果只是一闪而过,页面加载完成后马上就恢复了 页面引用了 http://www.360doc.com/js/showarticle.js?t=2017041201 unpack 之后可以看到 function setContentWidth() { var spacing = window.screen.width > 1024 ? 30 : 1; var z_setWidth = $(".article_container")[0].scrollWidth > 656 ? $(".article_container")[0].scrollWidth : 656; $(".a_left").width(z_setWidth + 26); $("#bgchange").width(z_setWidth); $(".doc360article_content").width(z_setWidth + 26 + 300 + spacing); // 设置 .doc360article_content 宽度 $("#artContent").removeAttr("width"); if ($(".doc360article_content").width() > 1040) { $(".a_topbanner").css("left", "0") } } 而这个 setContentWidth 在同一个 js 中有两处调用 window.onload = function() { setContentWidth(); gotop() }; $(document).ready(function() { ...略 setContentWidth(); ...略 }); 因为不保证执行的先后顺序 所以和你的脚本中的 $.ready 起了冲突 最简单粗暴的 workaround 就是把你自己的代码延迟几百毫秒再执行来尽量保证让页面的 js 先执行完毕 比如 $(document).ready(function () { $('div.header').remove(); $('div.a_right').remove(); setTimeout(() => $('div.doc360article_content').width('686px'), 1000); }); 虽然我不推荐这种方法 |
|
|
9楼#
发布于:2017-04-13 17:46
|
|
|
10楼#
发布于:2017-04-14 05:37
aaaa007cn:在 360doc 这个场合作为一个小白,非常谢谢你的耐心解答! 这回就明白两者间的关系了( 虽然代码依然不会写。。哈哈) |
|
11楼#
发布于:2017-04-14 19:45
油猴把@run-at设置为document-start就能完全替代stylish了, 不过要把css写成文本格式, 而且也不自带css高亮的编辑器, 稍显麻烦
但是stylish据说很吃性能, 而且还传出准备收集用户信息之类乱七八糟的消息...本着大型扩展省一个是一个的原则, 反正我是只留油猴了... |
|
|
12楼#
发布于:2017-04-14 23:29
|
|
|
13楼#
发布于:2017-04-15 11:52
|
|
|
14楼#
发布于:2017-04-19 04:24
如果你用uBlock Origin,也可以使用下面两条规则来实现
360doc.com##div.a_right,div.header 360doc.com##div.doc360article_content:style(width:686px!important) 第一条是隐藏元素,第二条是插入css。目前uBlock Origin和adguard都支持插入css,但是使用的语法有区别 |
|