问题标签 [userjs]
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.
javascript - 滚动到锚点
我有以下 userjs,旨在删除 URL 的锚部分,但仍跳转到它:
问题是,如果我有一个设置了名称的空<a>
标签,它将无法跳转。obj.scrollIntoView()
也失败了。Opera-10.52_pre6306,Gentoo。
javascript - 网页JS读出的用户JS
目前我通过 Opera 中的 UserJS 向网页添加了一些功能。我想知道网页设计师是否可以在他的网页上看到我在我的 UserJS 中执行的 javascript 操作(例如通过 javascript)?
这可能吗?我认为这不是因为 UserJS 首先被执行并且没有真正“添加”到页面中。我想确定,因此提出了这个问题。
javascript - Opera User-JS:我如何获得原始服务器响应?
我正在为 Opera 编写一些用户 JS。它对没有扩展名的请求做出反应,例如/stuff/code/MyFile
,或者与 JavaScript 无关的请求,例如/stuff/code/load.do
. 响应的内容类型设置为text/html
,即使它返回纯 JavaScript 源 ( text/javascript
)。由于我无权访问服务器代码,我只需要忍受这个。
现在的问题是我想用行号等格式化源代码并将其显示在 Opera 中。因此,我写了一些 user-JS 来做出反应AfterEvent.DOMContentLoaded
(也试过了AfterEvent.load
,同样的事情)。它读取e.event.target.body.innerHTML
以获取对主体的访问权,即 JavaScript 代码。
如果源不包含 HTML 标记或比较运算符(<、>),仅此一项就可以很好地工作。既然这样做了,我永远不会得到我想要的输出。Opera 似乎有一些内部逻辑可以将text/html
-response 转换为自己的表示格式。这包括例如删除 HTML 标记后的 CRLF,或者两个“匹配”< 和 >(比较运算符!)之间的代码被压缩成一行,应用于其中=""
的每个单词之后。
这就是问题所在。
如果我在没有用户 JS 的情况下请求相同的 URL,然后查看“页面”的来源,我会看到一个干净的 JavaScript 代码,该代码与服务器发送的内容相同。这就是我想要访问的内容。
如果我使用innerText
而不是innerHTML
,Opera 也会去掉 HTML 标记,从而使文件与原始文件不同。
我也尝试查看outerHTML
,outerText
和textContent
,但它们都有相同的问题。
我知道 Opera 在这里没有做错任何事情。服务器说它是 atext/html
并且 Opera 只是做它通常用 atext/html
响应做的事情。
因此,我的问题是:有什么方法可以通过 user-JS 获得未受影响的响应?
javascript - 有没有办法在歌剧小部件或扩展中运行外部程序?关于它在 Linux 中的编码问题
我正在开发一个必须能够调用外部程序的扩展。
在firefox中,可以使用nsIProcess,非常简单。
但是opera的UserJS或者widget好像很弱,没有这个功能。
有一些工作吗?
另一个问题,我尝试使用协议处理程序。
这很奇怪,并且出现了奇怪的问题。
-
当传递给协议处理程序的 URL 中包含 %AE 之类的 UTF-8 字符时,
无论是否使用 escape(),处理程序都无法接收到正确的 URL。
我必须用一些奇怪的字符串替换 % 以避免这种情况。这真是一个丑陋的解决方案。
它只出现在 Linux、opera 11.0 中。
我开始认为这是一个错误。 - 在 Opera Linux 中,它会将 URL 中的所有反斜杠替换为“/”。我不想要这个,如何禁用它?
javascript - 如何在最新的 Firefox 中单击 input type="submit"?
我为 Facebook 制作了非常受欢迎的 UserJS,但从 FF 3.6.13 版本开始它不起作用(对于那个版本)。我只是不知道如何单击这些元素:
? 用鼠标单击这些按钮会重定向到另一个页面。
我的脚本所做的是用 Xpath 搜索这些元素,然后用简单的方法单击它们acceptbutton.click();
它在 Opera、Chrome 和 FF <3.6.13 上运行良好,但在最新版本中没有任何反应。我还尝试了我在 stackoverflow 上找到的 fireEvent 和 eventFire 函数,它们经常帮助我,但这次他们不能。
可能使用 JQuery 的click()
函数会有所帮助,但我不能在我的 userjs 中使用 jquery。
我也尝试过acceptbutton.form.submit();
,但它会将我重定向到错误的页面。
编辑 :
好的,我正在添加代码片段
谢谢你的帮助!
internet-explorer - 有没有办法在 Chrome 中提供 user.js 设置的管理?
我是http://userscripts.org/scripts/review/86621的开发人员,这是一个简单的脚本,可以监控您的网站在 Google SERP 中的位置。
用户网站列表由脚本开头的数组设置。这对我来说是可以接受的,直到:
- 一些用户询问添加长 URL 列表的简单方法
- 我转换为 Chrome,那里没有“编辑脚本”按钮
是否有任何 API 有助于通过本机浏览器方式访问设置(通过 chrome://settings/extensionSettings,通过单击“选项”按钮)?
此外,我很高兴了解其他浏览器的此类 API。
javascript - 当页面完成加载并下载其所有资产(如 img、script、css 等)时,Opera 的 userJS 中使用什么事件名称来触发函数?
这是我的代码:
在最新的稳定版和 alpha 版 Operas 中也是如此。
jquery - Opera 中的 jQuery userJS
我开始在 Opera 中学习 UserJS。为了测试,我尝试连接 jQuery 库和 jQuery UI,但没有成功。这是代码:
第一次警报工作。两个库连接到页面,但 jQuery 代码不起作用。怎么了?
PS。我收到一个错误:ReferenceError:未定义的变量:$
javascript - 为什么这个greasemonkey/javascript代码在冒号上运行?
它按预期工作 - 所需的功能是能够使用分号键更轻松地调用 bang!'s。但是由于某种原因,它也会导致包含冒号的 URL 永久刷新(实际上它应该什么都不做)。
这是代码:
示例测试页面:(https://duckduckgo.com/?q=w%3A+greasemonkey
为什么这永远令人耳目一新??!!?!?!garrrr!)和https://duckduckgo.com/?q=w%3B+greasemonkey
(按预期工作 - 万岁!)
javascript - Opera:尝试从脚本存储中读取值时出现安全错误
我正在为 Opera 编写用户 JS 脚本,并且正在尝试使用 window.opera.scriptStorage 来存储和检索值。
我创建了一个名为 __EnvDriver 的类型来封装脚本存储。
(__EnvDriver 类型的函数是在运行时确定的,以便将来轻松实现对 Firefox 或 Chrome 的支持。)
我可以毫无问题地存储值,但是在尝试读取值时,出现以下错误:
问题似乎与访问该window.__EnvDriver.storage
值有关,因为当我尝试以任何方式使用它时会发生相同的错误。我尝试将存储对象存储在不同的地方,但它们都表现出相同的行为。这似乎是在最新的 Opera 更新 (v12.01) 之后才发生的。
任何帮助将不胜感激。