基于变量的Javascript-DOM文档查询
假设我有一个WYSIWYG(在我的例子中是微小的MCE),我接受一些输入。 我想查看输入并提取任何base64图像,然后将它们发送到某个地方,以转换为AWS bucket中的URL。 我可以做最后一点,但我被中间部分卡住了,那就是从变量中提取元素 这是我尝试的不起作用的[“TypeError:无法读取未定义的”的属性“getElementsByTagName”] 感谢您事先提出的任何想法或建议。这可能是不可能的。基于变量的Javascript-DOM文档查询,javascript,dom,Javascript,Dom,假设我有一个WYSIWYG(在我的例子中是微小的MCE),我接受一些输入。 我想查看输入并提取任何base64图像,然后将它们发送到某个地方,以转换为AWS bucket中的URL。 我可以做最后一点,但我被中间部分卡住了,那就是从变量中提取元素 这是我尝试的不起作用的[“TypeError:无法读取未定义的”的属性“getElementsByTagName”] 感谢您事先提出的任何想法或建议。这可能是不可能的。.append,因此dombody是未定义的,因此当您尝试对其调用方法时会引发错误
.append
,因此dombody
是未定义的
,因此当您尝试对其调用方法时会引发错误
改为在前面的语句中指定dombody
(如果可能,请记住改为let
):
哇,太快了!谢谢你!我刚刚意识到我可以做到这一点:
让dombody=document.createElement(“div”);dombody.innerHTML=mcebody;设imglist=dombody.getElementsByTagName(“img”)但是我更喜欢你的:)谢谢!为了避免不需要的脚本运行,使用.append
(或者更好的是,DOMParser
)会更安全.innerHTML
允许执行任意代码。这可能不是一个问题,但可能是,因此避免它将是一个好习惯。值得一提的是,DOMParser.parseFromString()
也可能受到XSS漏洞的影响。看到和
let dombody = document.createElement("div").append(mcebody);
let imglist = dombody.getElementsByTagName("img");
const dombody = document.createElement("div");
dombody.append(mcebody);
const imglist = dombody.getElementsByTagName("img");