тег HTML-сценария и содержимое не из JS - Firefox - PullRequest
3 голосов
/ 13 августа 2010

Похоже, этот код будет запрашивать файл в Chrome и IE, но не в Firefox.

<script type="text/my-custom-mime-type" src="test.ashx">
</script>

Есть ли какая-нибудь спецификация, в которой говорится, что браузеры должны обрабатывать только mime-типы, связанные с JavaScript? Я знаю, что IE, вероятно, поддерживает это из-за истории с vbscript.

Как только вы загрузите такой контент, как вы можете получить к нему доступ? Есть ли JavaScript / jQuery /? есть какой-то способ достичь этого.

UPDATE Таким образом, есть 2 части, чтобы подвергнуть сомнению. Похоже на первую часть - браузер загрузит то, что загрузит, и я думаю, что пока вы мало что можете сделать с этим, основываясь на ответах.

Пример:
<script type="text/xml-script">
<page xmlns="http://schemas.microsoft.com/xml-script/2005"> <components>
<application load="page_load" />
</components>
</page>
</script>
</pre>

это фрагмент от декларативной технологии Microsoft MSAjax. Не могли бы вы извлечь это из внешнего файла. Примечание: я не пытаюсь использовать MSAjax здесь, но это хороший пример пользовательского типа, используемого для тега скрипта.

Часть 2 - можете ли вы получить доступ к тексту, если «контент» действительно загружается? Например, скажем, его JavaScript - вы могли бы отобразить его в текстовом поле? (без явного вызова Ajax)?

Ответы [ 3 ]

5 голосов
/ 13 августа 2010

Есть ли какая-то спецификация, в которой говорится, что браузеры должны обрабатывать только mime-типы, связанные с JavaScript?

См. Атрибут type :

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

Если вы хотите получить произвольный контентдля использования в сценарии используйте XMLHttpRequest.

1 голос
/ 13 августа 2010

Канонический способ указать скрипт:

<script src="something.js" type="text/javascript"></script>

или

<script src="somethingThatWilReturnJavaScriptMime.someextension" type="text/javascript"></script>

Нет причин, по которым браузер должен загружать неизвестный mime в тег скрипта, и он будет строго зависеть от браузера, будет ли он разрешать / игнорировать атрибут типа

Это будет вопрос тестирования, чтобы увидеть, что будет делать браузер, если вы действительно отправите

Тип содержания: текст / JavaScript

независимо от атрибута типа

0 голосов
/ 13 августа 2010

Вы устанавливаете тип контента.Гадание .NET вот так выкладываю основную идею:

public class Handler : IHttpHandler {
    public void ProcessRequest (HttpContext context) {
         context.Response.ContentType = "text/javascript";
         context.Response.Write("alert('hello world');");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...