我正在尝试发送一个可以分配给按钮元素的onclick的函数。
在我的一个页面上,我尝试将一个名为showPopup的函数作为局部变量发送,然后将其赋值给一个按钮onclick。
serverController.js
exports.get_server = (req, res, next) => {
Server.findById(req.params.id).populate("channels").exec((err, server) => {
if(err) next(err);
let showPopup = () => {
let c = document.querySelector("form.container-popup#add-channel");
c.hidden = false;
}
res.render("server-page", {
server: server,
user: res.locals.currentUser,
showPopup: showPopup
})
})
};
channel-side-bar.pug
div.secondary-side-bar
div This is the channel side bar
for channel in server.channels
a(href=`/server/${server._id}/channel/${channel._id}`) #{channel.name}
br
button.add-channel(type="button" onclick=showPopup) Add Channel
//- - showPopup() <-- runs my function when program runs
form.container-popup#add-channel(method="POST" action=createChannelURL hidden=true)
.div Create Channel
label(for="name") Channel Name
input(type="text" name="name" placeholder="Enter channel name here...")
label(for="private") Private Channel?
input(type="checkbox" value="private" name="private")
button(type="submit") Submit
script.
//- let addChannelButton = document.querySelector("button.add-channel")
//- addChannelButton.onclick = showPopup;
console.log("in pug script")
当我运行代码时,我收到一个错误消息:
拒绝执行内联事件处理程序,因为它违反了以下内容安全策略指令:"script-src-attr 'none'"。启用内联执行需要" unsafe-inline "关键字、哈希(" sha256-...")或随机数(" nonce-...")。请注意,哈希不适用于事件处理程序、样式属性和JavaScript:导航,除非存在"unsafe-hashes"关键字。
为了记录在案,我还引用了这样的话:
onclick="showPopup"
onclick="showPopup()"
我哪里做错了?
我也尝试过直接在pug页面脚本中添加onclick函数,但似乎也无法运行。
1条答案
按热度按时间ibrsph3r1#
您尝试构建Chrome扩展吗?
如果是这样的话,你应该读这个:https://developer.chrome.com/docs/apps/contentSecurityPolicy