3

テストページで正常に動作するこのコードがあります...

Javascript:

function myFunction() {
    var x = document.getElementById("tarea"),
        nameInput = document.getElementById('name'),
        classInput = document.getElementById('class');

    var lines = x.value.split('\n');
    var name = lines[0].substring(5);
    var grade = lines[1].substring(6);

    nameInput.value = name;
    classInput.value = grade;
}

HTML:

<textarea rows="4" cols="50" id="tarea" onblur="myFunction()"></textarea>

次に、 Greasemonkey を使用して既存onblurのページに機能を追加したいと考えています。

onblurしかし、 Greasemonkey で Javascript イベントを使用する方法がわかりません。検索しましたが、Greasemonkey を使用した例は見つかりませんでしonblurた。

4

1 に答える 1

4

addEventListener()(プレーンな JavaScript) またはjQuery の.on()(より堅牢なアプローチ)を使用します。

プレーン JS:

// ==UserScript==
// @name     _YOUR_SCRIPT_NAME
// @include  http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant    GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
    introduced in GM 1.0.   It restores the sandbox.
*/

var targInput = document.getElementById ("tarea");
targInput.addEventListener ("blur", myFunction, false);

function myFunction () {
    ... ...
}


jQuery (推奨)、次の点に注意してください@require

// ==UserScript==
// @name     _YOUR_SCRIPT_NAME
// @include  http://YOUR_SERVER.COM/YOUR_PATH/*
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @grant    GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
    introduced in GM 1.0.   It restores the sandbox.
*/

$(document).on ("blur", "#tarea", myFunction);

function myFunction () {
    ... ...
}
于 2012-12-19T06:59:40.220 に答える