Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   аналог document.write для firefox (https://javascript.ru/forum/css-html-firefox-mizilla/38462-analog-document-write-dlya-firefox.html)

Deff 03.06.2013 13:27

Цитата:

Сообщение от Owyn
Не В смысле перенаправлять же юзеров на отдельный сайт где текущий сайт будет опять

Хм, а чем это хуже чем заставлять установить юзер скрипт?
Тут просто дать ссылку

Owyn 03.06.2013 13:32

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

Deff 03.06.2013 13:37

Цитата:

Сообщение от Owyn
Кому дать ссылку? И когда? И, главное, на что ссылку дать? Я никого не заставляю. Пользователи для своего же удобства сами находят юзерскрипт и ставят его.

Ну вот такой долгий диалог, дабы выяснить все требования...
Даже не все ... а лишь часть...

На оффсайте FF выяснять не пробовали ?

Owyn 03.06.2013 13:48

Задать вопрос разработчикам мозиллы почему они ограничили doc.write и как обойти их ограничение?...

Deff 03.06.2013 13:52

Owyn,
Такой финт тож херицо ?

document.body.innerHTML='<img src="http://forum.mybb.ru/i/blank.gif" onload="document.write(\'<html><head></head><body>TEST</body></html>\');"/>'

Owyn 03.06.2013 14:38

Вложений: 1
Уже нашел кто херил финты :) Хоть я noscript и всё время отключал на текующей страницы он всё равно наровил включиться обратно через некоторое время...

Рабочий код:
function inject(func) {
    var source = func.toString();
    var script = document.createElement('script');
    script.innerHTML = "("+ source +")()";
    document.body.appendChild(script);
}

function myf() {
  //alert("OK");
  document.write('<html><head></head><body>TEST</body></html>');
}

inject(myf);


Но осталась последняя проблема:

если в f оставить только алерт то всё ок, если там оставить document.write то таб в firefox бесконечно остается "Connecting..." и кружок всегда крутится вместо её иконки и img не грузятся (хотя если на них нажать reload то всё ок покажет их), в хроме опять всё хорошо работает...

Deff 03.06.2013 14:40

тут недочёт
нун так:
Цитата:

script.text = "("+ source +")()";
///

Owyn 03.06.2013 14:47

Замена innerHTML на text проблему не решила, + алерт выдаётся и так и так если его туда поставить, да и TEST пишется на страницу, но она продолжает грузиться и не даёт загрузиться ничему на ней..

Deff 03.06.2013 14:54

Owyn,
А если так:
function inject(func) {
    var img = document.createElement('img');
    img.src = 'http://forum.mybb.ru/i/blank.gif' //Пиксельная прозрачка
    img.setAttribute("onload","document.write('<!DOCTYPE><html><head></head><body>TEST</body></html>')";
    //img.setAttribute("onload","("+func+")()"; //Пока в комменте
    document.body.appendChild(img);
}

function myf() {
  //alert("OK");
  document.write('<html><head></head><body>TEST</body></html>');
}

inject(myf);

Поправлено в document.body.appendChild(img);

Owyn 03.06.2013 15:07

Через img тоже самое грузит страницу бесконечно, хоть TEST и пишется так


Часовой пояс GMT +3, время: 02:48.