- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我找不到关于 src
的任何文档或规范script
的属性标签。
浏览器操纵这个属性的值,它总是反射(reflect) absolute URI .让我们考虑以下示例:
域名:https://example.com
脚本标签:<script src="/path/a/b/c.js"></script>
script.getAttribute("src")> /path/a/b/c.js
script.src> https://example.com/path/a/b/c.js
如您所见,src
之间存在差异和 getAttribute("src")
.
我想知道在哪里可以找到有关它的详细信息(浏览器实现的文档/规范/源代码)。
浏览器(包括手机)对该功能的支持情况如何?
最佳答案
我在 HTML5 specification 中找到了它:
首先是this讨论了 .src
<script>
的属性(property)标签:
The IDL attributes src, type, charset, defer, each must reflect the respective content attributes of the same name.
然后,如果您关注 link in that specification要了解“反射(reflect)”的含义,您可以这样做:
If a reflecting IDL attribute is a DOMString attribute whose content attribute is defined to contain a URL, then on getting, the IDL attribute must resolve the value of the content attribute relative to the element and return the resulting absolute URL if that was successful, or the empty string otherwise; and on setting, must set the content attribute to the specified literal value. If the content attribute is absent, the IDL attribute must return the default value, if the content attribute has one, or else the empty string.
所以,用一个简短的形式来描述:如果你设置 .src
属性(或任何其他带有 URL 的属性),那么您设置的内容将作为属性存储。当你得到 .src
属性,返回的值是相对于基本 URL 解析属性后得到的绝对 URL。
至于.getAttribute()
,其规范为 here .它只是说:
Retrieves an attribute value by name.
Return Value
DOMString | The Attr value as a string, or the empty string if that attribute does not have a specified or default value.
值得注意的是,此描述中没有任何与 URL 属性在如上所述直接读取其属性时所具有的特殊行为相关的内容。因此,使用 .getAttribute()
没有那种特殊的“反射(reflect)”行为。它只返回属性的原始值,没有特殊 getter
行为。
这是一种有意为之的行为,并且已经存在了很长时间。还有针对特定浏览器的特定开发者网站描述了该行为。
阅读.src
属性始终返回完全限定的 URL,无论您在 HTML 中或通过 Javascript 分配了什么。
使用 .getAttribute("src")
读取相同的属性准确返回 HTML 中的内容。
对于以 IE8 here 开头的 URI 作为属性的任何标记,Microsoft 记录了 IE 在这方面的行为方式.
Mozilla 记录了 Firefox 在图像处理方面的表现 here .
图像演示(尽管所有类型的具有 src
或 href
属性的标签似乎具有相同的行为(包括 <script>
标签):
var t = document.getElementById("target");
log("target.getAttribute('src') = ", target.getAttribute('src'));
log("target.src = ", target.src);
<head>
<script src="http://files.the-friend-family.com/log.js"></script>
<base href="http://dummyimage.com">
</head>
<img id="target" src="/200x100/000/fff">
事实上,这里有一个利用这个事实的小工具:
function makeAbsolute(uri) {
var a = document.createElement("a");
a.href = uri;
return a.href;
}
var x = makeAbsolute("test.html");
document.write(x);
关于javascript - 为什么 script.src 会这样工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35074526/
我正在尝试使用 jquery 获取图像 src,如下所示: HTML Javascript var imageSrc = $('.post_container img').attr('s
我遇到错误,无法完成构建。我搜索了 Stackoverflow 和 Github。我已经尝试了很多方法,但我无法修复。请帮忙。 (1) 在 [src/nullnull/debug, src/debug
我正在尝试使用图像制作一款类似 Match3 的游戏,但我无法进行比较。我正在为固定数量的 atm 执行此操作,只是为了让它正常工作,稍后应该在 foreach 循环中。如果有什么区别的话,该函数位于
我正在使用 jquery 插件 OwlCarousel,在我的一个 View 中使用 ng-repeat 场景,如下所示: 它运行良好,并为轮播中的每个项目输出以下标记: 有没
我的代码如下所示: Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.image1); int wi
如果未找到 src,我将使用 Angular 指令作为后备 url 作为名称首字母 指令 (function () { 'use strict'; angular .m
我是构建 chrome 扩展的新手,从一个小项目开始,我需要在弹出窗口中打印“构建版本”。构建版本被附加到 JS/CSS 资源中,如下所示: 需要从脚本 src 值中提取“6.0”。你能帮我看看如何
类型‘AbstractControl’上不存在属性‘Controls’。
这个tutorial演示如何使用指令 ngSrc 而不是 src : 他们要求: Replace the ng-src directive with a pl
我正在创建一个包含多个图像的图库,您可以在其中单击一个小缩略图,然后将打开该图像的更大版本。 打开后,如果您移动光标,图像将在 y 轴上跟随您。类似于 https://www.zara.com/es/
文档[] src.charAt src.length 这三样东西是什么? 我确定 pixState 会给我 1 或 0; var pixState = document[imgName].src.ch
问题背景: 我正在使用这个问题的解决方案:How to update AngularJS view when the value has not changed?所以在我看来我有: 当我更改照片时
我在 html 中有整个页面,在输出之前我想将所有 img src 替换为 data-src我正在使用 return (preg_replace('~]*\K(?=src)~i','data-',
Difference(s): android:src and tools:src? 如果有的话,什么时候使用 tools:src 而不是 android:src 是合适的? 最佳答案 如果您在运行时在
我需要检查每个 script 标签的 src 值,如果匹配,我想更改该脚本标签的 src 属性...像这样: var scripts = document.getElementsByTagName("
使用 img 标签的 data-src 或 src 属性有什么区别和后果(好的和坏的)?我可以使用两者获得相同的结果吗?如果是这样,应该什么时候使用它们? 最佳答案 属性 src 和 data-src
我使用 Vue。我尝试输出图像,当我使用 src 时效果很好,但当我使用 :src 时效果不佳。 作品 不起作用 我试过但没有用 @ 在路径的第一个。 ~ 路径中的第一个。 ./ 在路径的第一个。
在当前项目中我正在使用 jQuery。我只是想知道为什么会这样, $('#homeIcon').hover(function(){ document.getElementById('homeI
我在严格的 Java 环境中。 所以这个问题并不像标题中那么简单,我不是要解决我遇到的问题,它更理论化,以获得更好的知识。 我感兴趣的是用双引号或单引号匹配 src,但如果是双引号,它也必须用双引号结
我有一个 Joomla 2.5.28,现在使用 https 而不是 http。 一些文章(很多)包含来自 Vimeo 的嵌入视频。 最初,这些视频是使用http嵌入的,所以现在我的数据库中有字段int
我是一名优秀的程序员,十分优秀!