Как преобразовать этот скрипт, который использует debrecadted E4X?Преобразование сценария greasemonkey после E4x не поддерживается
Я не программист, но если вы объясните мне, где мне нужно начинать, я делаю все возможное.
В первой, кажется, не проблема CDATA ...
Вот ссылка, в Buggzilla, где я описать мою проблему: Firefox 17 breaks a Greasemonkey script that relies on E4X (New : Firefox 21 delete totally its support)
я получить здесь первый Indice где e4x находится в использовать (поиск в коде "ricCB"):
requestImageComments: function(id) {
if (!id) return;
var tkey = 'getComments';
// Set up ticket status queue if needed
if (!this.ticketStatus[tkey]) this.ticketStatus[tkey] = new Object();
return this.flickrApi
({ method: 'flickr.photos.comments.getList', photo_id: id },
'ricCB', {ticktype: tkey});
},
ricCB: function(rsp) {
var hash = this.objects.comments;
for each (comments in rsp.comments) {
// for (var cs = 0; cs < rsp.comments.length; cs++) {
// var comments = rsp.comments[cs];
var pid = [email protected]_id;
for each (com in comments.comment) {
var uname = [email protected];
var nsid = [email protected];
this.setTranslation({ uname: uname, nsid: nsid });
// var create = new Date([email protected]);
var ctxt = com + '';
// Strip out HTML tags:
ctxt = ctxt.replace(/(\<|\<\;).+?(\>|\>\;)/g,'');
// Collapse all whitespace runs to single spaces:
ctxt = ctxt.replace(/[\s\n\r\t]+/g, ' ');
// Store data under both authorname and photo ID (hash
// will collide only if someone is using a pure
// integer as a name AND a photo has same integer).
var info = { txt: ctxt, uname: uname, photo: pid };
if (!hash[uname]) hash[uname] = new Array();
if (!hash[pid]) hash[pid] = new Array();
hash[uname].push(info);
hash[pid].push(info);
}
}
Первоначально опубликованы здесь: My Greasemonkey script stopped working after something updated
Этот сценарий не кажется использовать любой E4X. Вероятно, это не проблема. Однако, сценарий 7 лет! С тех пор Flickr, скорее всего, сильно изменился. Переписывание этого сценария для вас не является тем, чем [так]; прочитайте [faq] идеи о том, как переписать этот вопрос. (Подсказка: точные сообщения об ошибках, код, который демонстрирует проблему, и то, что вы пробовали.) –
Я думаю, что это E4X: в «Ошибка 814633 - Firefox 17 разбивает сценарий Greasemonkey, который полагается на E4X (New: Firefox 21 полностью удаляет его поддержку) «Борис Збарский написал: Строка 558 пользовательского скрипта: var pid = comments. @ Photo_id; , который определенно выглядит как e4x-ism для меня. Есть еще несколько строк. Просто выполните поиск функции, называемой «ricCB», в http: // userscripts.org/scripts/review/5016 И я не хочу, чтобы вы переписывали код, но вы просто объясняете, как это сделать ... – decembre
Хорошо, при ближайшем рассмотрении он использует E4X. Но это еще не правильный вопрос. Фиксация этого сценария требует, как минимум, рефакторинга функции parseXML и всех других функций, которые используют его вывод. Вам нужно разбить его на биты, которые могут помочь кому-то с той же проблемой. Этот вопрос нуждается в SSCCE. Прочитайте [faq] и отредактируйте свой вопрос, иначе он будет проигнорирован и закрыт. –