Dein_Jude
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: В настройках сервера, который указывает, что данный файл нужно открывать как text/plain. Почти не лечится. | Есть пользовательский JS-скрипт для Оперы, который исправляет указание ошибочных MIME-типов для html-страниц, которые ошибочно отдаются сервером как text/plain. Код: document.addEventListener( 'load', function () { //protect certain file types (thanks to Olli for reminding me not to screw up text files ) if( location.pathname.match(/\.(txt|text|js|css|cpp|src)$/) ) { return; } //if the body element contains only one PRE if( document.body && document.body.childNodes.length == 1 && document.body.firstChild.tagName == 'PRE' ) { for( var i = 0, bodyText = ''; document.body.firstChild.childNodes[i]; i++ ) { bodyText += document.body.firstChild.childNodes[i].nodeValue; } //check for html and body, somewhere in the first 256 bytes if( bodyText.substr(0,256).match(/<(body|html)/i) ) { document.open(); //offer backout, since I cannot check for protected mimetypes document.write(bodyText.replace(/<\/(body|html)>/ig,'')+ '<div style=\"position:absolute;top:0px;right:0px;background-color:white;color:red;border:3px dashed red;font-size:smaller;\"'+ ' onmouseover=\"this.innerHTML = \'&quot;FixTextPlain&quot; script thinks this is an HTML document, but it was served '+ 'as plain text.<br>You can click your back button to go back to the plain'+ ' text version.\';\" onmouseout=\"this.innerHTML = \'Recovered\';\" onclick=\"this.parentNode.removeChild(this);\">Recovered<\/div>'); document.close(); } } }, false ); | По аналогии можно сделать скипт, который исправляет текстовый mime-тип для "экозитических" форматов файлов RAR, ARJ, 7Z и тому подобных. В таком случае все RAR и прочие архивы будут воспринимать Оперой как надо, и Опера будет выдавать стандартный Open/Save диалог. Что нужно поправить в вышеуказанном скрипте для исправления RAR и прочей "экзотики" вместо html? |