我见过这个问题,它拒绝导入与标签内容本身相关的js文件。我有一个类似的问题,在这里,我有一个jsp标记,该标记生成一些HTML,并具有处理该HTML行为的通用js实现。此外,我需要编写一些初始化语句,以便以后可以通过JavaScript使用它。为了在我的JavaScript中使用此“处理程序”,应该可以某种方式访问它。
问题是…可以将内联
您应该在自己的文件中争取javascript。这通常通过渐进增强来完成。但是有时候您别无选择,例如当同一JSP用不同语言呈现页面时。这是一个真实的例子:
JSP:
<script src="/javascript/article_admin.js"></script> <script type="text/javascript"> NP_ArticleAdmin.initialize({ text: { please_confirm_deletion_of: '<i18n:output text="please.confirm.deletion.of"/>', this_cannot_be_undone: '<i18n:output text="this.cannot.be.undone"/>' } }); </script>
javascript(article_admin.js):
/*global NP_ArticleAdmin, jQuery, confirm */ NP_ArticleAdmin = function ($) { var text; function delete_article(event) { var article = $(this).parents("li.article"), id = article.attr("id"), name = article.find("h3.name").html(); if (confirm(text.please_confirm_deletion_of + name + text.this_cannot_be_undone)) { $.post("/admin/delete_article", {id: id}); article.fadeOut(); } event.preventDefault(); return false; } function initialize(data) { text = data.text; $("#articles a.delete").click(delete_article); } return {initialize: initialize}; }(jQuery);
在此示例中,JSP文件中唯一的javascript是需要存在的部分。核心功能在其自己的js文件中分开。