Javascript Bookmarklet If-Else - PullRequest
       31

Javascript Bookmarklet If-Else

2 голосов
/ 13 декабря 2011

Я пытаюсь написать букмарклет, который определяет, находится ли пользователь на уже проанализированной странице, и если его нет, значения должны быть переданы в API.

if (window.location.indexOf("thequeue.org") >= 0) {
    alert("Drag the Bookmarklet in your Brookmarks Bar!");
} else {
    location.href = 'http://thequeue.org/r?id=' + encodeURIComponent(location.href) + '&title=' + document.title;
}

Есть несколько руководствна Bookmarklets в целом, но я нашел этот инструмент преобразования: http://jasonmillerdesign.com/Free_Stuff/Instant_Bookmarklet_Converter,, который дал мне это:

javascript:(function(){if(window.location.indexOf(%22queue.org%22)%20%3E%3D%200)%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alert(%22your%20url%20contains%20the%20name%20franky%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0Alocation.href%3D'http%3A%2F%2Fthequeue.org%2Fr%3Fid%3D'%2BencodeURIComponent(location.href)%2B'%26title%3D'%2Bdocument.title%3B%0A%7D}());

Однако букмарклет перестает работать полностью.Я могу подтвердить, что это работает: javascript:location.href='http://thequeue.org/r?id='+encodeURIComponent(location.href)+'&title='+document.title;

Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

Это должно работать для вас:

javascript:(function(){if(location.href.indexOf("thequeue.org/")>=0){alert("Drag the Bookmarklet in your Brookmarks Bar!");}else{location.href='http://thequeue.org/r?id='+encodeURIComponent(location.href)+'&title='+document.title;}})();

Обратите внимание, что я немного изменил предложение if, чтобы сделать его более устойчивым.

0 голосов
/ 13 декабря 2011

Возможно, вы захотите сначала удалить все пробелы.Я не знаю, в этом ли ваша проблема, но это по крайней мере сделает ваш букмарклет намного менее уродливым.

...