问题标签 [dotjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1003 浏览

javascript - 防止 Gmail 关闭/保持可见

在自负类型开始之前的免责声明:这不是“在野外”部署的。这仅供 Chrome 插件在本地个人使用。我不是在试图欺骗我网站的访问者或做任何其他令人讨厌的事情。我已经看到了一些对那些想要在 onbeforeunload 上钩的人的批评。

一些背景

毫无疑问,我对 Chrome 的最大抱怨(至少在 Mac OS 上)是它的标签关闭按钮,当我打开多个标签时(就像我通常做的那样),由于标签本身变得相当小而且我经常无意中关闭标签因此标签关闭按钮未覆盖的点击目标区域非常小。在某些带有新闻故事、博客文章、文档等的标签上,这很烦人,但不是很大的不便。我只是 CMD+T 重新打开选项卡,并没有造成真正的伤害。但是,某些选项卡,尤其是 Gmail,在关闭时有明显的缺点。我经常与同事打开一个或多个聊天对话框并重新打开一个选项卡不会恢复聊天对话框,并且发起新的聊天会使我失去当前的聊天历史记录(是的,它已保存,但它 s 不能通过在上下文中向后滚动来方便地访问)。谷歌有一些要求添加选项以简单地删除标签关闭按钮(我自己更喜欢使用 CMD+W),但我并没有屏住呼吸。

部分解决方案

不久前,一位朋友向我介绍了dotJS Chrome 插件,它允许按域自定义 JavaScript 执行,类似于 GreaseMonkey,但略有不同。无论如何,它为我提供了一种在我经常访问的许多网站上“修复”问题/需求的方法,而且我发现它到目前为止非常有帮助。前几天我突然想到,我可以用一点 JavaScript 来打开我的 Gmail 等选项卡。我拼凑了一个基于正则表达式的小脚本,它会在关闭选项卡之前提示您。代码的要点如下:

瞧,这对我尝试过的大多数网站都起到了作用;除了一个:Gmail。让我纠正一下:它起作用了,因为它提示我确认关闭 Gmail 标签,如果我选择不关闭它,它会保持标签打开,但在对话框提示我之前,页面已经完全消失白色的。元素检查器显示标记仍然存在(据我所知),元素上的样式不应该隐藏东西(即显示:无;可见性:隐藏;等)并且元素的定位仍然正确(例如,它们在可视区域内)。我逐个删除元素以查看是否有任何东西遮挡了 Gmail 界面,但始终无法在屏幕上显示出来。我一生都无法弄清楚发生了什么。一世' 我不确定 Gmail 是否与我不知道的某些事件有关(on*before*beforeunload?),或者 Google 的浏览器是否对他们的 Gmail 页面做了一些特殊的事情,或者是什么导致了奇怪的行为。谷歌阅读器不受这种奇怪的影响(我可以防止关闭并保留页面的内容),就像我测试过的所有其他网站一样。

有谁知道可能导致此问题的原因?

作为记录,我正在运行以下命令:Mac OS X 10.6.5、Google Chrome 10.0.648.205 和 dotJS 1.3。

我感谢任何反馈,但我不是在寻找涉及以下内容的解决方案:固定选项卡、更改我的工作流程/使用情况(例如,不使用鼠标选择选项卡)等。我真的想弄清楚具体是什么,Gmail(或者可能是 Chrome ?) 这样做是在破坏我在这里的努力。提前致谢。

0 投票
1 回答
892 浏览

google-chrome-extension - 消息未从内容脚本发送到 background.js

我正在尝试使用内容脚本将我自己的 JS 文件注入页面。我尝试这样做的方式是基于名为 dotjs 的 Chrome 扩展使用的系统,该扩展在您的计算机上运行一个小服务器,并使 AJAX 请求到 localhost 以便从该服务器检索文件。

由于同源策略,我相当确定这些 AJAX 请求只有在从 background.js 而不是内容脚本发送时才会通过。我还需要使用 webRequest,它也只能在后台页面中使用。但是,由于我需要将内容注入页面本身,因此我需要一个内容脚本。所以我的扩展与一个内容脚本一起工作,该脚本将消息发送到后台页面,请求它执行它需要的所有 webRequest 和 AJAX。

问题是,background.js 似乎没有收到这些消息。如您所见,我在 background.js 的 onRequest 处理程序中有一些 console.log(),它们没有出现在我的控制台中。

清单.json

dotjs.js

背景.js

0 投票
2 回答
2896 浏览

html - 使用 html 属性的 DOM 惩罚

我正在考虑使用 HTML5 数据属性来更轻松地为我的应用程序编写第三方脚本。所以,考虑两种情况:

  1. 页面上有 10'000 个 HTML 元素,例如<div>Sticker</div>.
  2. 还有其他 10'000 个 HTML 元素,例如<div data-id="{{id}}" data-category="{{category-id}}">Sticker</div>.

第二种情况(存在 attrs)可能会影响 DOM / 渲染性能,不是吗?如果有,多少钱?

澄清一下,我不打算自己使用数据属性,只是将它们公开给第三方脚本或浏览器插件。考虑dotjs左右。使用数据属性很容易抓取/抓取页面。

0 投票
2 回答
985 浏览

javascript - 如何使用 GreaseMonkey 将“/”键返回给浏览器?

许多网页似乎都使用/关键字进行搜索。我想禁用它,因为 100% 的时间我都想使用/在 FireFox 的页面中进行搜索。有没有办法可以用 GreaseMonkey 或 dotjs 覆盖这种行为?

最好的公开示例是https://www.github.com/,也是https://wiki.jenkins-ci.org/display/JENKINS/Issue+Tracking

0 投票
1 回答
577 浏览

node.js - 在 express 中使用 dotjs

我想用dotjs代替 Jade for Express

我变了

但它没有加载很长时间,我没有得到回应;

它出什么问题了 ?

0 投票
1 回答
1815 浏览

javascript - 如何在 GitHub wiki 页面上插入 javascript 以启用 MathJax?

GitHub wiki 页面不再支持MathJax。似乎dotjs Chrome 扩展程序可能是在这些页面上启用 MathJax 的一种方式。

这是我第一次尝试创建将在 github.com 页面上执行的 javascript,并插入启用 MathJax 所需的正确代码:

但是,这不起作用,并且 Chrome JavaScript 控制台中会出现以下错误:

什么是正确的 JavaScript?