imidway
小狐狸
小狐狸
  • UID37084
  • 注册日期2011-08-26
  • 最后登录2019-11-17
  • 发帖数23
  • 经验36枚
  • 威望0点
  • 贡献值26点
  • 好评度1点
  • 社区居民
  • 忠实会员
阅读:1863回复:14

自己写油猴脚本还是不行啊。简单的文本居中都做不到。。求帮忙。

楼主#
更多 发布于:2017-04-11 21:54
在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后。  页面上方留有一个空白。  不知道能不能也给同时去掉呢? 当然如果实在不行也无所谓了,只要文本能居中就可以了
不知为什么论坛传不上图片啊,谢谢看到的人有耐心能看完文字版的描述)
bootislands
火狐狸
火狐狸
  • UID38137
  • 注册日期2012-01-18
  • 最后登录2018-02-14
  • 发帖数130
  • 经验152枚
  • 威望0点
  • 贡献值112点
  • 好评度15点
  • 社区居民
  • 忠实会员
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;
  }
}
imidway
小狐狸
小狐狸
  • UID37084
  • 注册日期2011-08-26
  • 最后登录2019-11-17
  • 发帖数23
  • 经验36枚
  • 威望0点
  • 贡献值26点
  • 好评度1点
  • 社区居民
  • 忠实会员
2楼#
发布于:2017-04-13 08:44
十分感谢!!
imidway
小狐狸
小狐狸
  • UID37084
  • 注册日期2011-08-26
  • 最后登录2019-11-17
  • 发帖数23
  • 经验36枚
  • 威望0点
  • 贡献值26点
  • 好评度1点
  • 社区居民
  • 忠实会员
3楼#
发布于:2017-04-13 08:49
为什么讨论火狐的论坛在火狐里点回复死活没反应    结果用edge才能回

感谢楼上   我只有个油猴   刚才又下了个stylish 代码放进去就看到效果了 棒棒哒

不过我还是不太懂   不是都说万能的油猴子吗?我以为会比stylish强大很多   也有搞不定的?
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2019-12-06
  • 发帖数18383
  • 经验4732枚
  • 威望5点
  • 贡献值4292点
  • 好评度1066点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
4楼#
发布于:2017-04-13 09:35
imidway:为什么讨论火狐的论坛在火狐里点回复死活没反应    结果用edge才能回

感谢楼上   我只有个油猴   刚才又下了个stylish 代码放进去就看到效果了 棒棒哒

不过我还是不太懂   不是都说万能的油猴子吗?我以为会比stylis...
回到原帖
回复按钮有时候是有问题,灰色不能点,可能是bug。GM是可以在脚本里面使用css的,应该是语法写的有问题。
Firefox More than meets your experience
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2019-12-04
  • 发帖数1918
  • 经验1132枚
  • 威望1点
  • 贡献值232点
  • 好评度161点
5楼#
发布于:2017-04-13 16:54
fang5566:回复按钮有时候是有问题,灰色不能点,可能是bug。GM是可以在脚本里面使用css的,应该是语法写的有问题。回到原帖
F12 开控制台看错误信息
应该是近几个月的某个版本 firefox 更改了某些 RegExp 的非标准行为
锅还是得 phpwind,或者说 phpwind 使用的 wysiwyg 编辑器来背
所以我之前问了升级计划啊
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2019-12-06
  • 发帖数18383
  • 经验4732枚
  • 威望5点
  • 贡献值4292点
  • 好评度1066点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
6楼#
发布于:2017-04-13 16:57
aaaa007cn:F12 开控制台看错误信息
应该是近几个月的某个版本 firefox 更改了某些 RegExp 的非标准行为
锅还是得 phpwind,或者说 phpwind 使用的 wysiwyg 编辑器来背
所以我之前问了升级计划啊
回到原帖
fiag正在搞了。暂无时间计划表。到时候会开个内测版论坛,和我们以前论坛一样的
Firefox More than meets your experience
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2019-12-04
  • 发帖数1918
  • 经验1132枚
  • 威望1点
  • 贡献值232点
  • 好评度161点
7楼#
发布于:2017-04-13 17:08
imidway:为什么讨论火狐的论坛在火狐里点回复死活没反应    结果用edge才能回

感谢楼上   我只有个油猴   刚才又下了个stylish 代码放进去就看到效果了 棒棒哒

不过我还是不太懂   不是都说万能的油猴子吗?我以为会比stylis...
回到原帖
对于更改页面
油猴确实是万能的
只有你想不到的
和不知道怎么实现的(比如目前这个情况

仅对于修改页面样式这一需求来说
油猴和 stylish 是可以互相替换的
但是哪个更合适还是要看实际需求(以及你的动手能力
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2019-12-04
  • 发帖数1918
  • 经验1132枚
  • 威望1点
  • 贡献值232点
  • 好评度161点
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);
});


虽然我不推荐这种方法
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2019-12-04
  • 发帖数1918
  • 经验1132枚
  • 威望1点
  • 贡献值232点
  • 好评度161点
9楼#
发布于:2017-04-13 17:46
6 楼也不能直接回复了……

@fang5566 好!威武!支持!有希望了!
imidway
小狐狸
小狐狸
  • UID37084
  • 注册日期2011-08-26
  • 最后登录2019-11-17
  • 发帖数23
  • 经验36枚
  • 威望0点
  • 贡献值26点
  • 好评度1点
  • 社区居民
  • 忠实会员
10楼#
发布于:2017-04-14 05:37
aaaa007cn:在 360doc 这个场合

> 刷新页面,却发现居中效果只是一闪而过,页面加载完成后马上就恢复了

页面引用了 http://www.360doc.com/js/showarticle.js?t=2017041201
unpac...
回到原帖
作为一个小白,非常谢谢你的耐心解答!  这回就明白两者间的关系了( 虽然代码依然不会写。。哈哈)
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2019-05-10
  • 发帖数2009
  • 经验617枚
  • 威望0点
  • 贡献值340点
  • 好评度65点
  • 社区居民
  • 忠实会员
11楼#
发布于:2017-04-14 19:45
油猴把@run-at设置为document-start就能完全替代stylish了, 不过要把css写成文本格式, 而且也不自带css高亮的编辑器, 稍显麻烦
但是stylish据说很吃性能, 而且还传出准备收集用户信息之类乱七八糟的消息...本着大型扩展省一个是一个的原则, 反正我是只留油猴了...
-いたんですか? -ええ、ずっと
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2019-12-04
  • 发帖数1918
  • 经验1132枚
  • 威望1点
  • 贡献值232点
  • 好评度161点
12楼#
发布于:2017-04-14 23:29
@白左
勿忘 userChrome.css
stylish 可以替代 userChrome.css
油猴则不可
(虽然谋智处心积虑要废掉 xul
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2019-05-10
  • 发帖数2009
  • 经验617枚
  • 威望0点
  • 贡献值340点
  • 好评度65点
  • 社区居民
  • 忠实会员
13楼#
发布于:2017-04-15 11:52
aaaa007cn:@白左
勿忘 userChrome.css
stylish 可以替代 userChrome.css
油猴则不可
(虽然谋智处心积虑要废掉 xul
回到原帖
哦哦原来是这样
不过我的uc.css调教好以后一年多没变过了,最多装新扩展时加条隐藏右键菜单的样式,工作量小,没必要专门弄个扩展来修改
回复按钮又灰掉了……
-いたんですか? -ええ、ずっと
tx9191
小狐狸
小狐狸
  • UID40220
  • 注册日期2013-10-30
  • 最后登录2017-10-22
  • 发帖数16
  • 经验14枚
  • 威望0点
  • 贡献值0点
  • 好评度6点
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,但是使用的语法有区别
游客

返回顶部