the HTML script tag and non-JS content - Firefox

眉间皱痕 提交于 2019-12-19 04:08:46

问题


It appears this code will request the file in Chrome and IE but not in Firefox.

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

Is there a some spec that says browsers should only process JavaScript related mime-types? I know IE probably supports this because of the history with vbscript.

Once you have "content" like this downloaded how can you get access to it? Does JavaScript/jQuery/? have some way of getting at this.

UPDATE So there is 2 parts to question. Sounds like for the first part - the browser will download what it will download and I guess there isn't much you can do about that based off the answers so far.

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

this is a snippet from Microsoft's declarative MSAjax tech. Could you pull this in from an external file. Note: I'm not trying to use MSAjax here, but its a good example of a custom type being used for a script tag.

Part 2 - can you get access to the text if the "content" does download? For example, lets say its JavaScript - could you display it in a textbox? (without an explicit Ajax call)?


回答1:


Is there a some spec that says browsers should only process JavaScript related mime-types?

See the type attribute:

This attribute gives an advisory hint as to the content type of the content available at the link target address. It allows user agents to opt to use a fallback mechanism rather than fetch the content if they are advised that they will get content in a content type they do not support.

If you want to fetch arbitrary content for use in a script, use XMLHttpRequest.




回答2:


The canonical way to specify script is

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

or

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

There is no reason the browser should load unknown mime into a script tag and it will be strictly browser specific whether or not it will allow/ignore the type attribute

It would be a matter of testing to see what the browser will do if you actually send

content-type:text/javascript

regardless of type attribute




回答3:


Are you setting the content type. Guessing .NET here so posting basic idea:

public class Handler : IHttpHandler {
    public void ProcessRequest (HttpContext context) {
         context.Response.ContentType = "text/javascript";
         context.Response.Write("alert('hello world');");
    }
}


来源:https://stackoverflow.com/questions/3477900/the-html-script-tag-and-non-js-content-firefox

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!