Изменить значение таблицы данных с помощью jQuery и usercript
Я пытаюсь изменить значение данных таблицы с помощью jQuery и usercript, но это не работает. Вот мой код:
// ==UserScript==
// @name My Fancy New Userscript
// @namespace http://use.i.E.your.homepage/
// @version 0.1
// @description enter something useful
// @copyright 2012+, You
// ==/UserScript==
// a function that loads jQuery and calls a callback function when jQuery has finished loading
function addJQuery(callback) {
var script = document.createElement("script");
script.setAttribute("src", "//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js");
script.addEventListener('load', function() {
var script = document.createElement("script");
script.textContent = "window.jQ=jQuery.noConflict(true);(" + callback.toString() + ")();";
document.body.appendChild(script);
}, false);
document.body.appendChild(script);
}
// the guts of this userscript
function main() {
// Note, jQ replaces $ to avoid conflicts.
$('.last').html('111');
}
// load jQuery and execute the main function
addJQuery(main);
Что я делаю неправильно? Я использую расширение Tampermonkey на Chrome 30.0.1599.69
1 ответ
Непосредственная вещь с этим кодом заключается в том, что $('.last').html('111');
должно быть JQ('.last').html('111');
addJQuery()
определяет JQ
не $
внутри main()
и это не лучшая версия addJQuery()
,
Но большая проблема в том, что это неумелый способ использовать jQuery на Tampermonkey (или Greasemonkey). Держите свой скрипт изолированным от кода страницы, когда можете.
Весь ваш скрипт должен быть примерно таким:
// ==UserScript==
// @name _YOUR_SCRIPT_NAME
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @version 0.1
// @grant GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
introduced in GM 1.0. It restores the sandbox.
*/
$('.last').html ('111');
Не забудьте соответствовать @include
директива (ы) к вашим целевым страницам.