Bonjour tout le monde,
j'ai chercher en vain une solution à mon problème. N'ayant au final que très peu de compétences en informatique, je viens ici vous exposer mon problème (qui normalement devrait être assez simple à résoudre). Si je poste dans cette section, c'est parce que je crois bien que le langage utilisé dans les scripts Greasemonkey est le java. Si d'aventure un modérateur estime que mon sujet n'a rien à faire dans cette partie du forum, libre à lui de la déplacer.
Je veux créer un script greasemonkey pour améliorer l'interface d'un jeu par navigateur (script complètement légal). Un ami m'a donné le code mais je n'arrive pas à copier/coller ce dernier dans le script créé. Un message d'erreur apparait, me mettant en garde contre les copier/coller de ligne de codes qui pourrait me nuire. C'est une protection qui est par défaut sur Firefox. J'ai donc cherché comment enlever cette protection.
J'ai donc créé un fichier user.js et j'ai rentré quelques lignes de codes trouvés sur un tuto afin de faire accepter le copier/coller, peine perdue. J'ai lu ici et là que cela pouvait venir d'un problème d'erreur donc j'ai réinitialisé mon firefox, tout réinstallé et réessayé, sans succès encore.
J'ai même essayé par deux fois de récrire les lignes de codes directement dans le script mais n'étant pas familiarisé avec aucun langage informatique, j'ai vite confondu les "." et "," par exemple et j'ai perdu un temps fou !
Est-ce que quelqu'un pourrait me guider pas à pas dans cette démarche ou mieux vaut-il simplement que j'envoie à une âme charitable les lignes de codes en question afin de créer directement le script ?
Je vous souhaite une bonne journée et j'espère avoir des réponses à mon petit problème.
EDIT : Je me suis aperçu que le fichier créé "user.js" était en fait "user.js.txt", du coup en le renommant correctement j'obtiens bien un fichier script. Par contre cela ne résoud pas mon problème et je ne peux plus ouvrir mon fichier (erreur : objet attendu ; code : 800A138F ; source : erreur d'exécution Microsoft JScript).
Je me permets de vous mettre ici ce que contient mon fichier user.js :
ser_pref("capability.policy.policynames", "allowclipboard" );
user_pref("capability.policy.allowclipboard.sites", "http://forum.apocalypsis.org" );
user_pref("capability.policy.allowclipboard.Clipboard.cutcopy", "allAccess" );
user_pref("capability.policy.allowclipboard.Clipboard.paste", "allAccess" );
Et voici maintenant les lignes de codes que j'aimerais copier/coller dans mon script :
// ==UserScript==
// @name Apocalypsis
// @namespace Apo
// @description Booste l'interface d'Apo qui craint
// @include http://www.apocalypsis.org/commerce/cb_price
// @include http://www.apocalypsis.org/commerce/cb_price?*
// @version 1
// @grant GM_xmlhttpRequest
// ==/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.
function parseCB() {
jQ('.subbox_sub p:nth-of-type(2)') .attr('style', 'color: orange !important');
jQ('.subbox_sub p:nth-of-type(3)') .attr('style', 'color: yellow !important');
var location = jQ('.subbox_sub p:nth-of-type(2)') .text() .replace(new RegExp('.*\\(([0-9.]+)\\)[,.].*', 'g'), '$1');
var taxe = jQ('.subbox_sub p:nth-of-type(3)') .text() .replace(new RegExp('.*([0-9]+).*', 'g'), '$1');
console.log('location [' + location + ']');
console.log('Taxe [' + taxe + ']');
jQ('.subbox_sub .listing') .attr('style', 'color: rose !important');
var prices = [];
jQ('.subbox_sub .listing > tbody > tr') .each(function (index) {
var data = {};
item = jQ(this) .find('td:nth-of-type(1)') .html();
price = jQ(this) .find('td:nth-of-type(2)') .text() .replace(/ /g, '');
tax = jQ(this) .find('td:nth-of-type(3)') .text() .replace(/ /g, '');
stock = jQ(this) .find('td:nth-of-type(6)') .text() .replace(/ /g, '');
jQ(this) .find('td:nth-of-type(6)') .html('<span style="font-family: monospace">'+stock+'</span>');
data['item'] = item;
data['price'] = price;
data['tax'] = tax;
data['stock'] = stock;
data['location'] = location;
prices.push(data);
});
jQ.ajax({
type: "POST",
url : "http://127.0.0.1:8101/prices",
data: JSON.stringify(prices),
timeout: 5000,
crossDomain: true
});
}
// Quickway to find out if script is active
jQ('.subbox.footer .subbox_sub a') .attr('style', 'color: red !important');
jQ('.subbox.footer .subbox_sub a') .text('Apo Engine active');
// hide button
jQ('form[name=cb_prices] :input[type=submit]') .hide();
// and replace it by a hidden field
jQ('form[name=cb_prices]') .append('<input type="hidden" value="Voir" name="e_sub">');
// remove closed CB
//jQ(':input[name=z_cb] option[value="3_4_0_1_4"]').remove();
// submit on selection change
jQ('form[name=cb_prices] :input[name=z_cb]') .on('change', function (event) {
jQ('form[name=cb_prices]') .submit();
});
parseCB();
}
// load jQuery and execute the main function
addJQuery(main);
//***********************************************
Voilà, je vous remercie d'avance !
Message édité par sayyad le 15-04-2015 à 12:54:20