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サイトに一致するように値を変更します。

sタイプは変更できない<input>ため、古い入力を削除し、同じ値で非表示の新しい入力を作成することに注意してください。



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

スクリプトファイルをPCに忍び込ませますよね?
: )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");

アップデート:

非常に重要な情報は質問から省略されました-主にこれはFirefox2.0(!!!)とGreasemonkey0.8を対象としています。それを前提として、最後のスクリプトのコードを次のように変更します。

var oldInput = document.getElementsByName ("prio");
oldInput[0].setAttribute ("disabled", "disabled");

動作するはずですが、テストすることは不可能であり、互換性テーブルはそのような時代遅れのブラウザさえカバーしていません

于 2012-08-30T19:00:14.317 に答える