- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我为 Chrome 和 Firefox 创建了一个插件,现在我注意到一些奇怪的行为。
基本上,此扩展允许在某些网络漫画网站上在普通 View 和特殊“阅读模式”之间切换。为此,它将使用 CSS 规则隐藏所有现有元素并创建一个新的 <img>
。插入正文并获得与现有 <img>
相同 URL 集的元素最初展示漫画的元素。
现在我观察到的行为是:当您切换模式时图像仍在加载,奇怪的事情发生了:它看起来像其中一个<img>
标签将继续工作(通常是图像开始加载的那个,但并非总是如此),但另一个标签将在用户停留在页面的剩余时间内继续显示“损坏的图像”图标。有趣的是,看起来这甚至会发生在 <img>
上。模式切换时动态创建/删除(不仅仅是显示/隐藏)的标签...
我认为这是一个非常奇怪的行为,我希望隐藏图像不会停止加载,或者暂停它并在另一个 <img>
时继续或重新启动它。显示具有相同 src 的标签,但不会像那样破坏。
相关代码部分为:
var $s, $c;
var setState = function(readModeEnabled, allowScrolling) {
if($s) {
$s.remove();
$s = null;
}
if($c) {
$c.remove();
$c = null;
}
if(readModeEnabled) {
if(allowScrolling) {
$s = "<style id='cherry-read-mode'>*{display:none !important;} html,body{display:block !important;width:100%;height:100%;text-align:center;} #cc-comic-2{display:inline-block !important;max-width:100%;}";
} else {
$s = "<style id='cherry-read-mode'>*{display:none !important;} html,body{display:block !important;width:100%;height:100%;text-align:center;overflow:hidden;} #cc-comic-2{display:inline-block !important;max-width:100%;max-height:100%;}";
}
$("head").append($s);
$s = $("#cherry-read-mode");
$c = $("<img id='cc-comic-2'/>").attr("src", $("#cc-comic").attr("src"));
$("body").append($c);
}
};
( readModeEnabled
是被切换的。使用 ID 的 $s
技巧只是因为我注意到 $("<style>something</style>").appendTo(...)
没有正确设置样式标签的内容,但 $(...).append("<style>something</style>")
可以。)
我做错了什么吗?那里有什么问题,最好的解决方案是什么?
编辑:我无法在 jsfiddle 上重现该行为,这很奇怪。 This fiddle非常接近实际情况下的工作方式,但一切正常...
EDI2:现在看来这只发生在扩展中!一开始我排除了这一点,因为它同时存在于 Chrome 和 Firefox 中,并且它们使用不同的渲染引擎和一切......但问题是,当我打开 Chrome 时,转到 http://sleeplessdomain.com ,在 devtools 中启用节流到“Good 2G”以便图像加载缓慢,然后将 fiddle 代码复制到控制台(加上加载 jQuery 的代码)然后使用 Enter 键播放,它有效!
EDIT3:我现在甚至将包括 jQuery 在内的整个内容脚本复制到 devtools 控制台中,然后它就可以正常工作了。所以这似乎是内容脚本的问题,但在 Chrome 和 Firefox 中都是如此!
EDIT4:哦哦。上述编辑的不同之处在于我使用 Enter 而不是 ESC - 在扩展中我将 ESC 作为键绑定(bind)。而且我没有意识到它也用于中止页面加载。 e.preventDefault()
做到了...我现在觉得有点傻 ^^
最佳答案
我的测试和实际情况的区别在于我使用 Enter 而不是 ESC - 在扩展中我将 ESC 作为键绑定(bind)。而且我没有意识到它也用于中止页面加载。 e.preventDefault()
做到了...
关于html - Chrome/Firefox 内容脚本 : Hiding <img> while image is loading appears to break other <img>s with same src,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36792692/
是否有效率偏好以下控制流选项之一用于循环或切换另一个? 选项 1: switch(...){ case 1: if (...) { ... } else if
我需要在某个地方修复一些 CSS,因为我的文本没有环绕,如果它是一个非常长的单词,它会无限期地继续下去。 在大多数情况下,我在我的 CSS 文件中尝试了 word-wrap: break-word;
这个问题在这里已经有了答案: What is the difference between "word-break: break-all" versus "word-wrap: break-word
我的问题: overflow-wrap: break-word 和 word-break: break-word 有区别吗? 非重复: 这里有一些现有的问题,乍一看可能是重复的,但实际上不是。 Wha
我目前想知道两者之间有什么区别。当我同时使用它们时,如果它不适合容器,它们似乎会打破这个词。但为什么 W3C 做了两种方式来做呢? 最佳答案 word-wrap: break-word 最近更改为 o
满足条件时如何跳出循环? 例如: for (i in 0..10){ if (i==3){ // equivalent of break } } 最佳答案 Q#没有中
CSS3 规范说部分支持 word-wrap:break-word; 在 Chrome 中你必须使用 word-wrap:break-all; 但是没有连字符。我正在使用 text-align:jus
我想在我的 View 列表中显示来自数据库的所有评论。但有时,评论会很长。我试图用 word-wrap:break-word 来“打破”它们,但没有结果——像这样的评论 aaaaaaaaaaaaaaa
我正在尝试将一个长 URL 放置在侧边栏中,以在表格单元格宽度的范围内中断和换行。我已将 style="word-break:break-all;" 添加到 td 和围绕文本和 URL 的 span
我有以下代码: public void post(String message) { final String mess = message; (new Thread() {
是否有 word-break: break-word 的 alternative 可以在 firefox 中使用? 在 firefox[版本 57.0] 中 在 Chrome [版本 62.0.320
在this question以及this blog ,其中提到了样式 word-break 及其值。此外,还有值 break-word 作为属于例如的东西。 自动换行类。 在最近的 VS 中 MVC
我正在尝试将文本包装在 td 中并使用以下样式 word-break:break-all 在 IE 中工作得很好,但在 Firefox 中失败,请注意这是不支持的!尝试了 http://petesbl
我正在使用“word-break: break-all”在任何字符之间插入分隔符。 但是,在 Chrome 中,它无法正常处理特定字符(例如冒号、分号、逗号),如下所示。 (我的代码笔在这里:http
它只有在我用不同的元素包裹 anchor 标记时才有效,但我正在阅读 html,所以我想将它添加为整个页面的样式。 最佳答案 我不确定你想在这里实现什么,如果你能分享一些代码片段会很好。 无论如何,我
这些看起来都是一样的,有什么区别? https://jsfiddle.net/pmuub8w1/2/ p{ word-break:normal; } p{
目前下面的代码,保持div宽度固定,换行由于break-all .Test{ float: left; margin-bottom: 2px; word-wrap:break-word; word-b
我正在使用 word-break: break-all; 并想知道如何让浏览器自动插入 hyphens ,如 MDN example 中所示. div { width: 80px; heigh
我的 html 有这种结构: content1 content2 content3 content4 content5 content6 co
我正在尝试对齐图像旁边的文本。我想考虑没有空格的长字符串。 我的css如下 .new_item { width: 100%; float: left; border-bottom: 1px solid
我是一名优秀的程序员,十分优秀!