为 GM 创建 JQueryscript - 重写 JS 代码带来的麻烦

2023-11-29

在尝试在没有帮助和有帮助的情况下解决问题之后,我仍然陷入困境。 我的目标是用 JS 编写一个 GM 脚本。有人告诉我使用 jQuery,因为它很简单。 嗯,我上周开始学习 JS,脑子里塞满了信息。 我需要的是提示/开始/开始/任何告诉我如何将脚本重写为良好工作的 jQuery 脚本。 好吧,我读了一些手册,但不知怎的我就是无法弄清楚。可能是我误解了 jQuery 的语法,这并不难理解。至少我重温了手册......

这就是脚本应该如何工作的: 1.我创建了3个函数。一种用于检查输入字段是否包含数字,并且仅允许数字、逗号、点和一些控件。第二次替换字符并在出现某种情况时发出警报。是大错特错了。第三个将四个字段相加,并将结果放在第五个字段中。 2.我为每个字段创建了两个函数。一个函数隐藏文本,一个函数通过单击“a”显示文本。 3. 至少我创建了一个表,其中包含它应包含的所有输入字段和文本。 4.通过单击一个特殊按钮,会出现注释(我仍然需要写下......)

对我来说,将所有信息放在一起并编写一个好看的(我知道它还不是)脚本是一件大事。

我真的希望你能帮助我。我只需要一个开始...

以下是我写的代码。 由于沙箱等原因使用了 document.write 函数,因此它在 GM 中不起作用。:-(

检查输入字段是否包含数字,仅允许数字、逗号、点和一些控件

function check(event) {

var keycode;
if (window.event) {
keycode = window.event.keycode;
} else if (event) {
keycode = event.which;
} else {
return true;
}
if (47 < keycode) {
if (keycode < 58) {
return true;
}
}
var keycodeascii = new Array(0,8,44,46);
while (keycodeascii.length > 0) {
if (keycode == keycodeascii.pop()) {                      
return true;
}
}
return false;
}

用“.”替换任何字符,开头和结尾不允许有字符

function replace(id) {
with(id) {

var oldValue = value;
var newValue = oldValue.replace(/\W+/g, ".");
newValue = newValue.replace(/\W+$/g, "");
newValue = newValue.replace(/^\W/g, "");
value = newValue;

//alerts if digits are split by more than character
var digits = newValue.split(".");
if (digits.length >= 3) {
alert("Sie haben " + (digits.length -1) + " Sonderzeichen verwendet. Bitte korrigieren Sie Ihre Eingabe.");
field.focus();
}

}
}

对field1-field4求和,结果出现在field5中

function calculate() {

var summe = (1*window.document.getElementById('field1').value) + (1*window.document.getElementById('field2').value) + (1*window.document.getElementById('field3').value) + (1*window.document.getElementById('field4').value);

window.document.getElementById('field5').value = summe;

}

信息扩展和拍打功能

function show() {
document.getElementById("huhu").style.display = "inline";
document.getElementById("field1_show").style.display = "none";
document.getElementById("field1_hide").style.display = "inline";
}
function hide() {
document.getElementById("huhu").style.display = "none";
document.getElementById("field1_show").style.display = "inline";
document.getElementById("field1_hide").style.display = "none";
}

function expandCom() {
document.getElementById("huhu1").style.display = "inline";
document.getElementById("field2_show").style.display = "none";
document.getElementById("field2_hide").style.display = "inline";
}
function clapCom() {
document.getElementById("huhu1").style.display = "none";
document.getElementById("field2_show").style.display = "inline";
document.getElementById("field2_hide").style.display = "none";
}

function expandOut() {
document.getElementById("field3div").style.display = "inline";
document.getElementById("field3_show").style.display = "none";
document.getElementById("field3_hide").style.display = "inline";
}
function clapOut() {
document.getElementById("field3div").style.display = "none";
document.getElementById("field3_show").style.display = "inline";
document.getElementById("field3_hide").style.display = "none";
}

function expandTest() {
document.getElementById("field4div").style.display = "inline";
document.getElementById("field4_show").style.display = "none";
document.getElementById("field4_hide").style.display = "inline";
}
function clapTest() {
document.getElementById("field4div").style.display = "none";
document.getElementById("field4_show").style.display = "inline";
document.getElementById("field4_hide").style.display = "none";
}

function expandEff() {
document.getElementById("field5div").style.display = "inline";
document.getElementById("field5_show").style.display = "none";
document.getElementById("field5_hide").style.display = "inline";
}
function clapEff() {
document.getElementById("field5div").style.display = "none";
document.getElementById("field5_show").style.display = "inline";
document.getElementById("field5_hide").style.display = "none";
}

创建一个包含所有需要和希望的结构的表

document.write("<table border='1' cellpadding='10' cellspacing='0'><tbody>");
document.write("<tr>");
document.write("<td bgColor='#FFFFDD'>");


document.write("<table border='0' cellpadding='0' cellspacing='2'><tbody>");
document.write("<tr>");
document.write("<td>");
document.write("<input type='text' id='field1' name='field_analysis' size='5' value='' onkeypress='return check(event)' onChange='replace(field1)'>");
document.write("<a onClick='show()' id='field1_show'>Text</a><a 'onClick='hide()' id='field1_hide' style='display: none'>Text</a><br><div id='huhu' style='display:none'>HUHU</div>");
document.write("</td>");
document.write("</tr>");



document.write("<tr>");
document.write("<td>");
document.write("<input type='text' id='field2' name='field_communication' size='5' value='' onkeypress='return check(event)' onChange='replace(field2)'>");
document.write("<a onClick='expandCom()' id='field2_show'>Text</a><a onClick='clapCom()' id='field2_hide' style='display:none'>Text</a><br><div id='huhu1' style='display:none'>HUHU</div>");
document.write("</td>");
document.write("</tr>");

document.write("<tr>");
document.write("<td>");
document.write("<input type='text' id='field3' name='field_outworking' size='5' value='' onkeypress='return check(event)' onChange='replace(field3)'>");
document.write("<a onClick='expandOut()' id='field3_show'>Text</a><a onClick='clapOut()' id='field3_hide' style='display:none'>Text</a><br><div id='field3div' style='display:none'>HUHU</div>");
document.write("</td>");
document.write("</tr>");

document.write("<tr>");
document.write("<td>");
document.write("<input type='text' id='field4' name='field_testing' size='5' value='' onkeypress='return check(event)' onChange='replace(field4)'>");
document.write("<a onClick='expandTest()' id='field4_show'>Text</a><a onClick='clapTest()' id='field4_hide' style='display:none'>Text</a><br><div id='field4div' style='display:none'>HUHU</div>");
document.write("</td>");
document.write("</tr>");

document.write("<tr>");
document.write("<td>");
document.write("<hr>");
document.write("<input type='text' id='field5' name='field_effort'size='5' value='' OnFocus='calculate()' onkeypress='return check(event)' onChange='replace(field5)'> ");
document.write("<a onClick='expandEff()' id='field5_show'>Text</a><a onClick='clapEff()' id='field5_hide' style='display:none'>Text</a><br><div id='field5div' style='display:none'>HUHU</div>");
document.write("</td>");
document.write("</tr>");

document.write("</tbody></table>");

    document.write("</td>");
    document.write("</tr>");
    document.write("</tbody></table>");

非常感谢大家帮助我找到解决方案。 法力


好的,这是一些半随机指针。

1)Greasemonkey 目前无法与 jQuery 1.4 很好地配合,因此请使用 jQuery 1.3.2。 通过将此行添加到标题中,将其合并到您的 GM 脚本中:

// @require     http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js

.
.
2)像这样的东西:

document.getElementById("huhu").style.display = "none";
document.getElementById("field1_show").style.display = "inline";
document.getElementById("field1_hide").style.display = "none";

.
用 jQuery 就变成这样了:

$("#huhu").css          ('display', 'none');
$("#field1_show").css   ('display', 'inline');
$("#field1_hide").css   ('display', 'none');

jQuery 版本在不同浏览器上也能更好地工作。

.
.
3)一个非常方便的 jQuery 参考位于:http://www.jqapi.com/

.
.
4)这是一个示例 Greasemonkey 脚本,其中包含您的表创建,并以 jQuery 方式重构。它可以正常工作,就像在 Google 主页上一样。调整标题和TargetNode以匹配您的目标网站。 : (Warning:此示例脚本将创建您的表,但您无法绑定onClicks 等,在 Greasemonkey 脚本中就是这样。看:转基因陷阱.)

// ==UserScript==
// @name           jQuery Test/Demo
// @namespace      Google
// @include        *.google.tld/
// @require        http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
// ==/UserScript==


/* Optional:
window.addEventListener ("load", Greasemonkey_main, false);
*/
$(document).ready (Greasemonkey_main);


function Greasemonkey_main ()
{
    /*--- Get the first node inside the id="main" span (Google.com)
        If that's not there, then get the first node of the html body.
    */
    var TargetNode  = $("#main *:first");
    if (!TargetNode)
        TargetNode  = $("body *:first");

    $(TargetNode).after
    (
          "<table border='1' cellpadding='10' cellspacing='0'><tbody>"
        + "<tr>"
        + "<td bgColor='#FFFFDD'>"
        + "<table border='0' cellpadding='0' cellspacing='2'><tbody>"
        + "<tr>"
        + "<td>"
        + "<input type='text' id='field1' name='field_analysis' size='5' value='' onkeypress='return check(event)' onChange='replace(field1)'>"
        + "<a onClick='show()' id='field1_show'>Text</a><a 'onClick='hide()' id='field1_hide' style='display: none'>Text</a><br><div id='huhu' style='display:none'>HUHU</div>"
        + "</td>"
        + "</tr>"
        + "<tr>"
        + "<td>"
        + "<input type='text' id='field2' name='field_communication' size='5' value='' onkeypress='return check(event)' onChange='replace(field2)'>"
        + "<a onClick='expandCom()' id='field2_show'>Text</a><a onClick='clapCom()' id='field2_hide' style='display:none'>Text</a><br><div id='huhu1' style='display:none'>HUHU</div>"
        + "</td>"
        + "</tr>"
        + "<tr>"
        + "<td>"
        + "<input type='text' id='field3' name='field_outworking' size='5' value='' onkeypress='return check(event)' onChange='replace(field3)'>"
        + "<a onClick='expandOut()' id='field3_show'>Text</a><a onClick='clapOut()' id='field3_hide' style='display:none'>Text</a><br><div id='field3div' style='display:none'>HUHU</div>"
        + "</td>"
        + "</tr>"
        + "<tr>"
        + "<td>"
        + "<input type='text' id='field4' name='field_testing' size='5' value='' onkeypress='return check(event)' onChange='replace(field4)'>"
        + "<a onClick='expandTest()' id='field4_show'>Text</a><a onClick='clapTest()' id='field4_hide' style='display:none'>Text</a><br><div id='field4div' style='display:none'>HUHU</div>"
        + "</td>"
        + "</tr>"
        + "<tr>"
        + "<td>"
        + "<hr>"
        + "<input type='text' id='field5' name='field_effort'size='5' value='' OnFocus='calculate()' onkeypress='return check(event)' onChange='replace(field5)'> "
        + "<a onClick='expandEff()' id='field5_show'>Text</a><a onClick='clapEff()' id='field5_hide' style='display:none'>Text</a><br><div id='field5div' style='display:none'>HUHU</div>"
        + "</td>"
        + "</tr>"
        + "</tbody></table>"
        + "</td>"
        + "</tr>"
        + "</tbody></table>"
    );
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为 GM 创建 JQueryscript - 重写 JS 代码带来的麻烦 的相关文章

随机推荐

  • 为什么下面的“std::transform”示例需要函数指针而不是函数对象?

    函数模板std transform 获取一个范围 使用运算符对其进行组件式操作 并将结果保存在另一个范围中 在下面的示例中 该函数采用泛型std initializer list called nl并对其进行操作 std string T
  • 带 CSS 的浮动标签在 Edge、Internet Explorer 中不起作用

    我使用 Css 制作了浮动标签输入字段 它可以在 chrome firefox 上正常工作 但不能在 Internet Explorer 和 Edge 上工作 所有其他浏览器在未聚焦时显示的输入字段与第一张图像中所示相同 而在聚焦时则与第二
  • 如何传递对字符串的引用?

    我读过的所有内容scanf gets and fgets是它们有问题 带有空白 溢出或复杂性 我正在学习 C 课程简介 因为我有足够的 Java 和其他语言编程经验 所以我有信心这样做 所以我决定创建自己的函数来获取用户使用的字符串输入ge
  • 涉及 group by 和 join 的 SQL 查询

    我无法在标题部分更具体 但我想为我做一些有点复杂的事情 我以为我做到了 但事实证明这是有问题的 我有以下三个表 项目表 id项目 title idOwner 报价表 idOffer id项目 帐号 负责任的 帐号 Username Now
  • 我可以阻止接口的实现吗?

    我有以下情况 public interface A void doSomethingCool public interface B extends A void doSomethingVeryBCool public interface C
  • 等待用户完成 JavaScript 中 blob 的下载

    在 Javascript 中 我创建了许多 blob 我想提示用户将它们另存为文件 目前 我正在使用URL createObjectURL 将 URL 放入链接中 并模拟对该链接的点击 当然我打电话URL revokeObjectURL释放
  • 从 DWORD 到 64 位指针的类型转换警告

    旧的 32 位 C 应用程序 MS Visual Studio 的代码行如下 m value PUCHAR someDWORD 其中 PUCHAR 是指向无符号字符的指针 现在我已更改为 64 位 并且收到有关从 DWORD 转换为 64
  • RequireJS:为什么相对路径适用于define(),但不适用于require()?

    假设您有以下目录结构和以下文件 root require jquery js folder index html main js AnotherModule js 在 RequireJS 中 当您引用以 开头的模块时 RequireJS 会
  • 是否可以使用 PowerShell 获取 Azure 订阅优惠或 OfferId?

    是否可以使用 Powershell 获取 Azure 订阅优惠或 OfferId 通过门户 这将是订阅 gt 属性 gt 优惠或优惠 ID 我找了好久了 还是没看到 Thanks 现在可以使用资源图形浏览器通过类似于以下的查询从门户完成此操
  • 如何读取本地xml文件作为android中的输入流资源文件夹?

    我正在尝试从类似的东西获取输入流 InputSource myInputSource new InputSource activity getResources openRawResource com MYCLass R xml progr
  • 在邮递员帖子请求中发送地图

    当我希望它使用 RequestBody 注释直接映射到我的 Java pojo 时 我找不到关于如何在 json 帖子中格式化地图的好答案 我假设 json 看起来像这样 myInt 10 myMap 1 A 我的 pojo 会有一个myI
  • JS 代码在 codepen 上运行缓慢,但在本地运行良好

    我已经为无与伦比的井字游戏实现了极小极大算法 极小极大算法是递归的 执行大迭代 这对计算机来说并不大 只对人类来说大 第一步在 codepen 上执行大约需要 3 秒 但在我的本地计算机上立即执行 怎么了 我的代码效率不高吗 或者是code
  • Google Charts LineChart 自定义点

    是否可以添加一个自定义点形状到折线图 谷歌的自定义点文档没有提及任何有关添加他们尚未提供的形状的内容 我确实找到了这个类似的问题有一个很好的答案 但我不认为我可以使用 angular google chart 做到这一点 即使有可能 我也希
  • Javascript 对象 push() 函数

    我有一个 javascript 对象 我实际上通过 ajax 请求获取数据 var data 我在里面添加了一些东西 data 0 ID 1 Status Valid data 1 ID 2 Status Invalid 现在我想删除所有状
  • 将 Excel 转换为 PDF - Java 使用 iText

    我使用 Apache POI 创建了一个 excel 文件 现在我需要将其转换为 PDF 我想使用 iText 但我想将合并的单元格 样式等从 Excel 文件复制到 pdf 我怎样才能实现这个目标 因为我在网上找到的代码示例 使用 iTe
  • ruby、rails gem 安装错误 - 错误:执行 gem 时 ... (Encoding::UndefinedConversionError)

    我尝试使用 ruby 来使用上一个版本 但是当运行 gem install Rails 时 总是出现错误 ERROR While executing gem Encoding UndefinedConversionError U 041D
  • 检查 SQL Azure 中数据库是否存在

    谁能告诉我如何在 sql azure 中编码数据库是否存在 您是否尝试过查询 sys databases 表 这应该会给你你正在寻找的东西 更多信息here 注意 您需要针对 Master 数据库运行此查询 否则 您只会看到当前数据库 和主
  • 如何使用 Loki 的小对象分配器?

    我需要使用 Loki 的小对象分配器 但我对其工作原理感到非常困惑 我已经阅读了文档和很多论坛 但没有意义 其中一些人说使用 stl 其他人则使用自定义分配器 我只需要能够通过分配和取消分配不同大小的对象来测试其性能 有人可以提供一个如何使
  • java方法重载继承与多态

    这是我遇到的一个测试练习问题 非常感谢您帮助我理解这些概念 让 Hawk 成为 Bird 的子类 假设某个类有两个重载方法 void foo Hawk h 和 void foo Bird b 在调用 foo x 之后将执行哪个版本 声明 B
  • 为 GM 创建 JQueryscript - 重写 JS 代码带来的麻烦

    在尝试在没有帮助和有帮助的情况下解决问题之后 我仍然陷入困境 我的目标是用 JS 编写一个 GM 脚本 有人告诉我使用 jQuery 因为它很简单 嗯 我上周开始学习 JS 脑子里塞满了信息 我需要的是提示 开始 开始 任何告诉我如何将脚本