为GM创建JQueryscript – 通过重写JS代码来解决问题
没有并且在帮助下试图解决问题后我仍然卡住了。 我的目标是用JS编写GM脚本。 有人告诉我使用jQuery因为它简单。 好吧,我上周开始学习JS,脑子里充满了信息。 我需要的是提示/开始/开始/告诉我如何将脚本重写为精细的jQuery脚本。 好吧,我读了一些手册,但不知怎的,我只是想不出来。 可能是我误解了jQuery的语法,这对于unserstand来说并不难。 至少我重温了手册……
这是脚本应该如何工作:1。我创建了3个函数。 一个用于检查输入字段是否包含数字并且仅允许数字,逗号,点和一些控件。 第二个替换字符和警告,如果…… 是非常错误的。 第三个是总结四个字段并将结果放在第五个字段中。 2.我为每个领域创建了两个函数。 一个function隐藏文本,一个function通过单击“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 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
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(""); document.write(""); document.write(""); document.write(""); document.write(""); document.write(""); document.write(""); document.write("TextText
HUHU"); document.write(" "); document.write(" "); document.write(""); document.write(""); document.write(""); document.write("TextText
HUHU"); document.write(" "); document.write(" "); document.write(""); document.write(""); document.write(""); document.write("TextText
HUHU"); document.write(" "); document.write(" "); document.write(""); document.write(""); document.write(""); document.write("TextText
HUHU"); document.write(" "); document.write(" "); document.write(""); document.write(""); document.write("
"); document.write(" "); document.write("TextText
HUHU"); document.write(" "); document.write(" "); document.write("
"); document.write(" "); document.write(" "); document.write("
");
非常感谢所有帮助我找到解决方案的人。 Faili
好的,这是一些半随机指针。
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)这是一个带有table-create的Greasemonkey脚本示例,重构了jQuery方式。 它可以在Google主页上使用。 调整标题和TargetNode
以匹配您的目标站点。 🙁 警告:此示例脚本将创建您的表,但您不能以这种方式在Greasemonkey脚本中绑定onClick
等。请参阅: GM陷阱 。)
// ==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 ( "" + "" + "" + "" + "" + "" + "" + "Text
" + " " + " " + "" + "" + "" + "Text
" + " " + " " + "" + "" + "" + "Text
" + " " + " " + "" + "" + "" + "Text
" + " " + " " + "" + "" + "
" + " " + "Text
" + " " + " " + "
" + " " + " " + "
" ); }