我的示例中有一个HTML字符串,称为tinymceToHTML,但我遇到的问题是,当下载此html字符串时,图像源或href设置错误。
我的图像源看起来像原始字符串中的“ / file /:id”,如果我将其转换为DOM对象并输出,则其源代码看起来像“ http:// localhost:3000 / file:id ”,这是所需的输出,因为外部文档可以加载该文件。所以我想出了这个解决方案。
var div = document.createElement('div');
div.innerHTML = tinymceToHTML;
var images = div.getElementsByTagName('img');
for(var i = 0; i < images.length; i++) {
images[i].src = images[i].src;
}
var a = div.getElementsByTagName('a');
for(var i = 0; i < a.length; i++) {
a[i].href = a[i].href;
}
tinymceToHTML = "<html><head></head><body>" + div.innerHTML +
"</body></html>";
我的问题是我不知道为什么在这种情况下将变量分配给自身会有所不同:images [i] .src = images [i] .src或a [i] .href = a [i] .href。
如果我让程序通过警报框向我显示输出,它会告诉我所需的URL,但是如果没有分配,程序将无法执行应有的操作。
我希望任何人都可以向我解释这种效果,以便更改代码,以更清楚地表明此行是必需的。
我还创建了一个小提琴示例,可以更轻松地显示我的意思,注释掉作业所在的行,以查看其他结果
根据定义,图像的完整URL就是imageElement.src返回的内容。从MDN:
HTMLImageElement.src是一个DOMString,反映了src HTML属性,其中包含图像的完整URL,包括基本URI。
如果那是您需要它们出现在最终字符串中的方式,那么这images[i].src = images[i].src
似乎是一种合理而简洁的方法。我只想添加一条评论以帮助理解,例如
images[i].src = images[i].src; // force the src to be the full URI
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句