这是我的代码
function render(img, name, price) {
var row = `
<a class="ProductCard" href="#" onclick="page('${numberFolder}')">
<img src="${img}">
<h1>${name}</h1>
<p>${price}</p>
</a>
`;
document.querySelector('#main').insertAdjacentHTML('beforeend', row);
}
字符串
我想执行page()
函数,但我不能,JavaScript检测到它是一个新函数,因为它在字符串中。当我检查错误时,我得到这个
未捕获的引用错误:页面未在HTMLAnchorElement.onclick定义
这是page()
函数(尚未完成)
function page(folderNum){
rowOrder = `HTML-HERE`
const productDetails = database.ref(`/products/${folderNum}`);
productDetails.on('value', (snapshot) => {
const details = snapshot.val();
console.log(details)
})
}
型
3条答案
按热度按时间clj7thdc1#
我怀疑当您单击添加的内容时,您的
page
函数不在范围内。因为如果它被正确地放置,这种技术应该可以很好地工作,如下面的代码片段所示:个字符
drkbr07n2#
要在JavaScript中执行字符串中的函数,可以使用eval()函数。但是,在使用eval()时必须谨慎,因为如果与不受信任的或用户生成的数据一起使用,则可能会引入安全风险。
rm5edbpk3#
选择
a
标记,例如:let aTag = row.children[0]
.比你能做的:aTag.onclick = () => page('${numberFolder}')
。这可能是最安全的方法。对于固定和更改验证代码,您可以通过查询类名来选择aTag。编辑:你不需要在文本中定义函数,你真的不应该。