我真的很担心我将要提出的建议,因为我认为这是一个不幸的问题,原本是错误设计的;你有点反对Javascript的基本工作方式。我真的更愿意将这种问题看作是“工作安全性”,因为被分配的人将这些东西重新制作为HTML代码之外的东西。
但是,如果你想听到它,我确实有一个可能的解决方案,使用eval
。就我个人而言,我认为我会陷入低谷,而不是没有充分的理由。我甚至没有测试过这个(除了'替代类型的脚本'和它的选择),但看到这个问题有两个upvotes,没有答案,我想我会建议它。所以,你将不得不评估它的潜在安全风险。
开始用这个替换页脚本:
<script type="text/postRequireScript">alert($('#somediv').html())</script>
由于浏览器不知道什么是“postRequireScript”是,它不会加载它。一旦requirejs加载,运行此脚本(你也可以添加一个“类”对这些脚本做出选择所有的人更容易)
$("script[type='text/postRequireScript']").each(function() {
var scriptContent = $(this).text();
// highly recommend you do at least some sanitization on scriptContent, if you know
// what sort of things to expect from it.
eval(scriptContent);
this.type = 'text/completedScript'; // prevent script from being re-run.
});
这将需要在各个您要添加HTML,可能有时间运行一个脚本在里面。
这是一个有趣的方法,我没有想到。 –