有些文档表明document.open()
支持将MIME类型作为其第一个参数。例如:HTML DOM Open Method (Dottoro)。
我还有一本古老的JavaScript教科书,声称你可以将MIME类型传递给document.open().
但我看到的大多数文档都说不然:
这是早期JavaScript支持哪个参数已被删除?
我在DOM规范中没有看到它:
这只是为了我的兴趣;我没有参数的具体用例。
答案 0 :(得分:5)
Chrome不使用 <Segment style={{overflow: 'auto', maxHeight: 200 }}>
</Segment>
参数。
type
方法检查V8Document.openMethod()
的参数的空间性,然后调用document.open(...)
或v8Document.open1Method()
。 v8Document.open2Method()
甚至没有阅读它提供的第一个(v8Document.open2Method()
)参数。 type
会读取它,如果未定义,则将其设置为默认值v8Document.open1Method()
。然后它会将"text/html"
值传递给type
方法,但从那里它被忽略。
Firefox使用Document.open()
参数,但唯一接受的非默认值为type
。
如果参数丢失,"text/plain"
方法会将nsHTMLDocument::Open()
设置为type
,然后调用另一个重载。重载会将"text/html"
以外的所有type
值转换为"text/html"
,然后将该内容类型应用于文档。
"text/plain"
属性可以告诉我们.contentType
的类型。我们不能提前使用它来进行特征检测,但我们可以用它来检查文档实际打开的类型,并相应地修改我们的输出。例如:
document
&#13;
答案 1 :(得分:0)
您可以在放置为链接的编码URL中指定mime类型。
buffer = ...
var blob = new Blob([buffer], {type: 'text/plain'})
var dataUri = window.URL.createObjectURL(blob)
window.open(dataUri)
答案 2 :(得分:-1)
某些上下文:document.write和document.open存在一些问题,因此不鼓励使用它们。见
https://developers.google.com/web/updates/2016/08/removing-document-write https://www.sitepoint.com/insert-in-place-without-documentwrite/
这是一个旧的DOM API,并且在当天的浏览器制造商中没有像今天那样协调实施w3规范。 (这是当时的参考,现在它更像是什么)
因此可能有一些浏览器确实为document.open设置了MIME参数,但依赖它可能会导致错误。所以它不可靠。尽可能使用替代品。实际上有一天它可能会完全被删除。它在最后一个dom whatwg spec https://dom.spec.whatwg.org/
中不存在答案是:取决于浏览器。从提供的dottoro链接看来,Safari和Chrome似乎从不支持它。
从技术上讲,它不是JavaScript API,而是DOM。