我完全不熟悉Greasemonkey,JavaScript,实际上是所有UI东西。
要求:页面加载后,用户脚本由GS运行一次。但是,我需要多次运行同一脚本而不刷新
用例:例如,Amazon.com搜索使用Ajax进行。我需要在搜索结果中嵌入自定义元素。
每次在同一页面上进行搜索时,我都需要将内容和结果一起注入到search-results-div中(没有页面刷新)
我当前的脚本仅在页面刷新时运行。
我希望以上解释清楚。请帮忙。
最简单,最可靠的方法是使用waitForKeyElements()实用程序。
这是一个使用jQuery并更改Amazon搜索结果的 完整脚本waitForKeyElements
:
// ==UserScript==
// @name _Amazon Search, alter results
// @include http://www.amazon.com/s/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
introduced in GM 1.0. It restores the sandbox.
*/
function addCustomSearchResult (jNode) {
//***** YOUR CODE HERE *****
jNode.prepend (
'<div id="result_000" class="fstRow">Buy my stuff, instead!</div>'
);
}
waitForKeyElements ("#atfResults", addCustomSearchResult);
我想用selenium来刮一个网页。检查页面并右键单击所建议的XPath属于不稳定类型(/html/body/table[2]/tbody/tr[1]/td/form/table/tbody/tr[2])。因此,我尝试了以下解决方案: 甚至 不要返回任何结果。但是,在本页的前面部分,我可以获得: 似乎在: 我再也无法到达任何元素。如何确定正确的XPath?建议脚本中的部分不可能解析。然而,我所追求
问题内容: 我公司购买了一种在页面上呈现ASP.NET控件的产品。该控件使用jQuery 1.2.3并将脚本标记添加到页面以引用它。如果控件以任何方式修改(包括修改以引用其他版本的jQuery),则控件的开发人员将不支持使用该控件。 我将要开始开发自己的控件,并希望使用jQuery 1.3的功能和速度改进。这两个控件都需要存在于同一页面上。 如何允许购买的控件使用jQuery 1.2.3和新的自定
问题内容: 我有一个Greasemonkey脚本,可以在Firefox和Opera中正常工作。但是,我很难使它在Chrome中工作。问题是将一个函数注入页面,该函数可以由页面中的代码调用。到目前为止,这是我正在做的事情: 首先,我获得了针对Firefox的unsafeWindow的帮助程序参考。这使我可以为FF和Opera(和Chrome,我认为)具有相同的代码。 接下来,我将一个函数注入页面。它
问题内容: 我正在处理用户脚本,但我发现当主页发出AJAX请求时,该脚本未运行。 有什么方法可以在主页加载和AJAX请求上触发用户脚本? 问题答案: 在AJAX请求上重新运行脚本代码的明智方法是,专注于页面的关键部分并检查更改。 例如,假设页面包含如下所示的HTML: 并且您希望脚本对每个注释进行处理。 现在,您 可以 拦截所有AJAX调用, 或者侦听 (不建议使用)或使用s,但是这些方法可能会变
问题内容: 我想运行一些命令,直到按Ctrl-C才会退出。是否可以运行一次即可运行所有这些程序,而Ctrl-C会全部退出它们?他们可以共享终端输出。 具体来说,我有罗盘编译器,coffeescript编译器和一个自定义命令,用于监视文件更改,所有命令都在运行以监视文件更改。我不想为每个命令加载一个终端。 问题答案: 该bash脚本适用于N个并行线程。每个参数都是一个命令。 捕获SIGINT时将杀死
问题内容: 如何运行多个python脚本?此刻我像这样跑一个。 我已经尝试过了,但是不起作用:仅运行第一个脚本。另外,我尝试使用这样的单个文件; 但是,这也不起作用。 问题答案: 使用Bash: 这就是整个脚本。它将同时运行两个Python脚本。 Python本身可以做同样的事情,但要花更多的时间输入,对于眼前的问题来说是一个不好的选择。 我认为尽管您采取错误的方法来解决问题很可能,但我想听听您的