问题
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