Javascript 在Chrome中使用内容安全策略时触发要调用的函数
我对使用感兴趣,但是如何触发要调用的函数呢 我有一个共享的.js文件、一个长网页和一个短网页。(实际上,可以有任意数量的网页,但为了简洁起见,我将其保留在这里)每个网页都有自己的函数,可以在页面加载时调用。由于不允许使用内联脚本,JS可以只监听“ready”事件,然后扫描一些HTML标记,以知道应该使用哪个页面的函数。但是,等待“就绪”事件有一个限制,适用于较长的页面 在长网页的顶部是带有日历日期选择器的日期范围过滤器Javascript 在Chrome中使用内容安全策略时触发要调用的函数,javascript,events,inline,content-security-policy,Javascript,Events,Inline,Content Security Policy,我对使用感兴趣,但是如何触发要调用的函数呢 我有一个共享的.js文件、一个长网页和一个短网页。(实际上,可以有任意数量的网页,但为了简洁起见,我将其保留在这里)每个网页都有自己的函数,可以在页面加载时调用。由于不允许使用内联脚本,JS可以只监听“ready”事件,然后扫描一些HTML标记,以知道应该使用哪个页面的函数。但是,等待“就绪”事件有一个限制,适用于较长的页面 在长网页的顶部是带有日历日期选择器的日期范围过滤器 <input name="date"/> <script
<input name="date"/>
<script src="shared.js"></script>
<script>handleCalendarPicker()</script>
.. lots of HTML to load
<script>coolStuff()</script>
handleCalendarPicker()
.. 要加载的HTML很多
coolStuff()
这样,日历选择器几乎可以立即工作,即使页面尚未加载完毕
CSP通常不允许使用内联脚本,但我仍然希望在呈现某个元素时触发事件,甚至在触发DOM就绪事件之前。如何才能做到这一点
我必须使用带有getElementById的计时器,还是有一种方法可以在不允许CSP通常阻止的任意JS的情况下触发事件?有几种方法可以实现这一点 我假设您允许
self
作为脚本src
而不是
<script>handleCalendarPicker()</script>
里面,然后你参考
<script src="foo.js"></script>
然后,可以使用上述nonce标记允许的内联脚本块:
<script nonce=EDNnf03nceIOfn39fn3e9h3sdfa>
handleCalendarPicker()
</script>
(请注意,上面的散列不是来自您的代码。)有几种方法可以实现这一点 我假设您允许
self
作为脚本src
而不是
<script>handleCalendarPicker()</script>
里面,然后你参考
<script src="foo.js"></script>
然后,可以使用上述nonce标记允许的内联脚本块:
<script nonce=EDNnf03nceIOfn39fn3e9h3sdfa>
handleCalendarPicker()
</script>
(请注意,上面的散列不是来自您的代码。)感谢您的概述。请注意,nonce和哈希白名单仅在中受支持。感谢您的概述。请注意,nonce和哈希白名单仅在中受支持。