Why is <META HTTP-EQUIV=“Content-Script-Type” …

2019-01-23 02:34发布

Related: What's the point of Content-Script-Type and Content-Style-Type.

I wanted to know what the main reasons are that developers don't use

  • <meta http-equiv="content-script-type" content="text/javascript" /> and
  • <meta http-equiv="content-style-type" content="text/css" />

in their web projects. (Me neither, btw.)

Saving one from having to declare the used type on every instance of <script> and <style>, it does not seem to have any drawbacks. Yet, in fact, I have never seen one of them in the wild. Are there any considerations one has to take when relying on these <meta> tags?

标签: html html4
8条回答
倾城 Initia
2楼-- · 2019-01-23 02:47

Speaking as a developer who just learned about these tags from your question, I'd say that it's the curse of the legacy browsers (I'm looking at you, IE6). Because when I learn about new tags, I usually continue not using them. I always assume browsers might not support any feature that I've never heard of, until I prove otherwise (which takes time), and since you have to program to the least common denominator (even if you "progressively enhance" later), that means, in this case, using the safer, more verbose method.

Having said that, I may actually give these a try. There's little risk, unless you're using content types other than text/javascript and text/css, since those have been the assumed defaults, like, forever. Indeed, as @duskwuff points out, there's probably no point in using either.

查看更多
再贱就再见
3楼-- · 2019-01-23 02:47
<meta http-equiv="Content-Style-Type" content="text/css; charset=UTF-8;">

The CSS meta is important for inline styles where we can't declare the type, so:

<span style="background:pink">
查看更多
Juvenile、少年°
4楼-- · 2019-01-23 02:47

Being HTTP-EQUIV - this has little to do with being deprecated in HTML5 (because here indeed the defaults are JS and CSS - which also makes the type-attribute unnecessary) - there is still the HTTP protocol: https://www.ietf.org/rfc/rfc4229.txt#2.1.30

so you can from the serverside very well send HTTP headers e.g. from PHP

<?php
header('Content-Type: text/html; charset=UTF-8');
header('Content-Script-Type: text/javascript');
header('Content-Style-Type: text/css');

or node

res.set('Content-Type', 'text/html; charset=UTF-8');
res.set('Content-Script-Type', 'text/javascript');
res.set('Content-Style-Type', 'text/css');
查看更多
做个烂人
5楼-- · 2019-01-23 02:49

It's a shame that these settings have become deprecated with HTML5. Because, as nobody else seems to be mentioning, you can put default character set settings in there as well! Thus:

<meta http-equiv="Content-Script-Type" content="text/javascript; charset=UTF-8;"> <meta http-equiv="Content-Style-Type" content="text/css; charset=UTF-8;">

查看更多
干净又极端
6楼-- · 2019-01-23 02:49
<script type="text/javascript">

is depricated, so use

<script type="application/javascript">

instead like mentioned here in april 2006. Start here to find the last content.

查看更多
看我几分像从前
7楼-- · 2019-01-23 02:50

All web browsers that I've heard of will default to assuming type="text/javascript" on all <script> tags, and type="text/css" on <style> tags. (The only meaningful alternative I've heard of is VBScript for <script> tags in MSIE, which is heavily deprecated. There's no alternative to CSS.) In recognition of this, the HTML5 spec defines both attributes as being newly optional.

As such, there's no point in the Content-Script-Type and Content-Style-Type meta tags -- as far as I'm aware, they're ignored by most, if not all, browsers.

查看更多
登录 后发表回答