我偶然发现了一些我以前从未见过的东西.在Backbone.js的示例TODO应用程序(Backbone TODO示例)的源代码中,他们将模板放在a中<script type = "text/template"></script>,其中包含的代码看起来像是PHP之外但带有JavaScript标记的代码.
谁可以给我解释一下这个?这是合法的吗?
例如,这些之间的区别是:
<iframe srcdoc="<p>Some HTML</p>"></iframe>
<iframe src="data:text/html,<p>Some HTML</p>"></iframe>
Run Code Online (Sandbox Code Playgroud)
而且,如果它们完全相同,为什么HTML5会添加srcdoc属性?
编辑
也许我不够清楚.我不是比较src有srcdoc,但src使用text/html的数据URI用srcdoc.
然后,如果功能图是这样的
| src attribute | srcdoc attribute
--------------------------------------------------------------------
URL | Yes | No without using src (*)
HTML content | Yes, using data URI | Yes
为什么srcdoc需要?
(*)注意:
它似乎srcdoc可以用来通过URL(Demo)加载页面,使用带有src属性的子图:
<iframe srcdoc="<iframe src='http://microsoft.com'></iframe>"></iframe>
Run Code Online (Sandbox Code Playgroud) 这是我的HTML:
<a>View it in your browser</a>
<div id="html">
<h1>Doggies</h1>
<p style="color:blue;">Kitties</p>
</div>
Run Code Online (Sandbox Code Playgroud)
如何使用JavaScript来使href我的链接点的属性base64编码的网页,其来源是innerHTML的div#html?
我基本上想要在这里完成相同的转换(选中base64复选框),但在JavaScript中除外.
我在Javascript中有一个字符串,我必须转义几个字符:
<script>
function GenerateCode() {
alert(ctry);
var script = "<script async src=\"//somesite.com/feed/livetrend.js\"></script>";
}
</script>
Run Code Online (Sandbox Code Playgroud)
我尝试了以下来逃避角色:
var script = "<script async src=\"//somesite.com/feed/livetrend.js\"></script>";
Run Code Online (Sandbox Code Playgroud)
但是,尽管已经考虑\在前面包含一个转义字符,但这不能正常工作"
这是一个错误 - unterminated string constant.
我在使用中遇到一些问题iframe。我一次会问一个问题。我正在LaTeX.js 游乐场上工作,想要添加一些 JavaScript 来处理\marginpars,但无论我做什么,Chrome 和 Firefox 都不会尝试加载脚本。如果在任何框架之外使用完全相同的代码,它就会起作用。
我尝试了绝对路径和相对路径,并且尝试了file、http和https协议。总是相同的结果。
这是相关代码:
<iframe id="preview" sandbox="allow-same-origin allow-scripts">
<html>
<head>
<title>LaTeX.js Show­case</title>
<meta charset="UTF-8">
<link type="text/css" rel="stylesheet" href="css/katex.css">
<link type="text/css" rel="stylesheet" href="css/article.css">
<link type="text/css" rel="stylesheet" href="css/error.css">
<script src="https://latex.js.org/js/base.js"></script>
</head>
...
Run Code Online (Sandbox Code Playgroud)
问题是base.js。开发人员工具在控制台中没有显示任何错误,在源选项卡中没有显示任何条目,在网络选项卡中也没有显示任何条目。
更新:正如我在评论中所说,上面的代码是使用 JavaScript 修改 DOM 的结果;但是,设置iframe.contentWindow.document.documentElement似乎不会触发加载脚本<head>,只有答案中的选项 2 对我有用。
javascript ×4
html ×2
iframe ×2
backbone.js ×1
base64 ×1
data-uri ×1
templates ×1
types ×1
url ×1