Я пытаюсь сделать свой собственный букмарклет, и я уже пытался прочитать какой-то ответ в SO, но ничего, чтобы ответить на странную реакцию, которую я получил от моего сценария.
Я делаю AJAX-вызов из моего букмарклета, поэтому я делаю маленький трюк:
var newScript = document.createElement("script");
newScript.type = "text/javascript";
newScript.src = "http://example.com/urlToMyJS.js";
document.body.appendChild(newScript);
void(0);
И urlToMyJS.js выглядит так:
var u = 'http://example.com/scriptToCall.php';
var request = new XMLHttpRequest();
request.open("GET", u, true);
request.onreadystatechange = function() {
var done = 4, ok = 200;
if (request.readyState == done && request.status == ok) {
if (request.responseText) {
alert(request.responseText);
}
}
};
request.send(null);
Странная часть:
- Javascript всегда запускается и scriptToCall.php всегда вызывается тоже (он регистрирует каждое попадание)
-
alert
показывает responseText
, когда я нажимаю на букмарклет на example.com
- Иногда на других сайтах
alert
ничего не показывает (но все равно появляется)
- В некоторых других случаях
alert
даже не отображается ... (но у меня все еще есть журнал ...)
У вас есть идеи, почему это происходит? И если да, у вас есть идея, как я могу сделать так, чтобы всегда показывалось responseText
?