是否可以删除输入但是使用Greasemonkey显示值?或者禁用它?例如:
<input name="prio" type="text" value="285" disabled="disabled">
我不知道如何编写任何用户脚本。 :(
这是我公司的PC,我无法使用jQuery或编辑原始源代码。
首先来看看更好的理解:
代码如下:http://jsfiddle.net/gv3XF/
但我想要那样:http://jsfiddle.net/gv3XF/1/
我用 Stylish 试了一下但是有了它,我只能隐藏输入。我仍然需要结果的值。
输入始终称为name="prio"
,但值的数字正在变化。
我想要的是“杀死”输入但显示值的结果。
答案 0 :(得分:2)
你不能只是“杀死”输入。如果这样做,那么在您提交表单时,可能无法将必要的数据发送到服务器。
所以, 隐藏 输入并显示其值。这是一个完整的脚本,使用jQuery的强大功能来做到这一点:
// ==UserScript==
// @name Make Priority more user friendly
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @grant GM_getValue
// ==/UserScript==
//--- The @grant is to subvert a huge design flaw, introduced with GM version 1.
var oldInput = $("input[name=prio]");
var priorityVal = oldInput.val ();
oldInput.after ('<b id="gmPriorityValue">' + priorityVal + '</b>');
oldInput.remove ();
$("#gmPriorityValue").before ('<input type="hidden" name="prio">');
$("input[name=prio]").val (priorityVal);
更改@include
值以匹配您的网站。
请注意,您无法更改<input>
类型,因此我们删除旧输入并创建一个具有相同值但隐藏的新输入。
回复:do that without jquery? the pc has no internet connection
:
你要把脚本文件偷偷带到电脑上,对吧? :)
下载并将jQuery偷偷带入它。将jQuery文件和userscript文件放在同一文件夹中,将@require
行更改为:
// @require jquery.min.js
然后脚本将安装得很好,不需要互联网连接。
回复:maybe the easiest way is to disable the input field
:
好的,这样做的脚本是:
// ==UserScript==
// @name Make Priority more user friendly
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant GM_getValue
// ==/UserScript==
var oldInput = document.querySelector ("input[name=prio]");
oldInput.setAttribute ("disabled", "disabled");
问题中忽略了至关重要的信息 - 主要是这是针对Firefox 2.0(!!!)和Greasemonkey 0.8。鉴于此,将最后一个脚本的代码更改为:
var oldInput = document.getElementsByName ("prio");
oldInput[0].setAttribute ("disabled", "disabled");
它应该可以工作,但是不可能测试,compatibility tables don't even cover such an obsolete browser。