问题标签 [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.

0 投票
1 回答
1630 浏览

javascript - 滚动到锚点

我有以下 userjs,旨在删除 URL 的锚部分,但仍跳转到它:

问题是,如果我有一个设置了名称的空<a>标签,它将无法跳转。obj.scrollIntoView()也失败了。Opera-10.52_pre6306,Gentoo。

0 投票
1 回答
54 浏览

javascript - 网页JS读出的用户JS

目前我通过 Opera 中的 UserJS 向网页添加了一些功能。我想知道网页设计师是否可以在他的网页上看到我在我的 UserJS 中执行的 javascript 操作(例如通过 javascript)?

这可能吗?我认为这不是因为 UserJS 首先被执行并且没有真正“添加”到页面中。我想确定,因此提出了这个问题。

0 投票
1 回答
469 浏览

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,outerTexttextContent,但它们都有相同的问题。

我知道 Opera 在这里没有做错任何事情。服务器说它是 atext/html并且 Opera 只是做它通常用 atext/html响应做的事情。

因此,我的问题是:有什么方法可以通过 user-JS 获得未受影响的响应?

0 投票
1 回答
464 浏览

javascript - 有没有办法在歌剧小部件或扩展中运行外部程序?关于它在 Linux 中的编码问题

我正在开发一个必须能够调用外部程序的扩展。
在firefox中,可以使用nsIProcess,非常简单。
但是opera的UserJS或者widget好像很弱,没有这个功能。
有一些工作吗?

另一个问题,我尝试使用协议处理程序。
这很奇怪,并且出现了奇怪的问题。

  1. 当传递给协议处理程序的 URL 中包含 %AE 之类的 UTF-8 字符时,
    无论是否使用 escape(),处理程序都无法接收到正确的 URL。
    我必须用一些奇怪的字符串替换 % 以避免这种情况。这真是一个丑陋的解决方案。
    它只出现在 Linux、opera 11.0 中。
    我开始认为这是一个错误。
  2. 在 Opera Linux 中,它会将 URL 中的所有反斜杠替换为“/”。我不想要这个,如何禁用它?
0 投票
3 回答
4857 浏览

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();,但它会将我重定向到错误的页面。

编辑 :

好的,我正在添加代码片段

谢谢你的帮助!

0 投票
1 回答
304 浏览

internet-explorer - 有没有办法在 Chrome 中提供 user.js 设置的管理?

我是http://userscripts.org/scripts/review/86621的开发人员,这是一个简单的脚本,可以监控您的网站在 Google SERP 中的位置。

用户网站列表由脚本开头的数组设置。这对我来说是可以接受的,直到:

  • 一些用户询问添加长 URL 列表的简单方法
  • 我转换为 Chrome,那里没有“编辑脚本”按钮

是否有任何 API 有助于通过本机浏览器方式访问设置(通过 chrome://settings/extensionSettings,通过单击“选项”按钮)?

此外,我很高兴了解其他浏览器的此类 API。

0 投票
1 回答
110 浏览

javascript - 当页面完成加载并下载其所有资产(如 img、script、css 等)时,Opera 的 userJS 中使用什么事件名称来触发函数?

这是我的代码:

在最新的稳定版和 alpha 版 Operas 中也是如此。

0 投票
1 回答
1328 浏览

jquery - Opera 中的 jQuery userJS

我开始在 Opera 中学习 UserJS。为了测试,我尝试连接 jQuery 库和 jQuery UI,但没有成功。这是代码:

第一次警报工作。两个库连接到页面,但 jQuery 代码不起作用。怎么了?

PS。我收到一个错误:ReferenceError:未定义的变量:$

0 投票
1 回答
151 浏览

javascript - 为什么这个greasemonkey/javascript代码在冒号上运行?

它按预期工作 - 所需的功能是能够使用分号键更轻松地调用 bang!'s。但是由于某种原因,它也会导致包含冒号的 URL 永久刷新(实际上它应该什么都不做)。

这是代码:

示例测试页面:(https://duckduckgo.com/?q=w%3A+greasemonkey为什么这永远令人耳目一新??!!?!?!garrrr!)和https://duckduckgo.com/?q=w%3B+greasemonkey(按预期工作 - 万岁!)

0 投票
0 回答
304 浏览

javascript - Opera:尝试从脚本存储中读取值时出现安全错误

我正在为 Opera 编写用户 JS 脚本,并且正在尝试使用 window.opera.scriptStorage 来存储和检索值。

我创建了一个名为 __EnvDriver 的类型来封装脚本存储。

(__EnvDriver 类型的函数是在运行时确定的,以便将来轻松实现对 Firefox 或 Chrome 的支持。)

我可以毫无问题地存储值,但是在尝试读取值时,出现以下错误:

问题似乎与访问该window.__EnvDriver.storage值有关,因为当我尝试以任何方式使用它时会发生相同的错误。我尝试将存储对象存储在不同的地方,但它们都表现出相同的行为。这似乎是在最新的 Opera 更新 (v12.01) 之后才发生的。

任何帮助将不胜感激。