1

是否可以删除输入但使用 Greasemonkey 显示值?还是禁用它?例如:

<input name="prio" type="text" value="285" disabled="disabled">

我不知道如何编写任何用户脚本。:(

它适用于我公司的 PC,我无法使用 jQuery 或编辑原始源代码。

首先看一下更好的理解:

代码如下所示:http: //jsfiddle.net/gv3XF/

但我想要这样:http: //jsfiddle.net/gv3XF/1/

我用Stylish尝试过,但我只能隐藏输入。我仍然需要结果的价值。

始终调用输入,name="prio"但值中的数字正在变化。

我想要的是“杀死”输入但显示值的结果。

4

1 回答 1

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>s 类型,因此我们删除旧输入并创建一个具有相同值但隐藏的新输入。



回复do that without jquery? the pc has no internet connection::

你要把脚本文件偷偷放到电脑上,对吧?:)
也下载并偷偷 jQuery 到它上面。将 jQuery 文件和用户脚本文件放在同一个文件夹中,将@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");

它应该可以工作,但无法测试,而且兼容性表甚至没有涵盖这样一个过时的浏览器

于 2012-08-30T19:00:14.317 回答