play framework 2.1中的视图不处理javascript
我遇到了一堵墙:基本上,Javascript在我的游戏页面中似乎不起作用 因此,我有一个视图play framework 2.1中的视图不处理javascript,javascript,playframework-2.0,Javascript,Playframework 2.0,我遇到了一堵墙:基本上,Javascript在我的游戏页面中似乎不起作用 因此,我有一个视图main.scala.html作为其他视图的模板。 此文件如下所示: @(page : String, title: String)(content: Html) <!DOCTYPE html> <html lang="en"> <head> <title>@title</title> <link rel="stylesh
main.scala.html
作为其他视图的模板。
此文件如下所示:
@(page : String, title: String)(content: Html)
<!DOCTYPE html>
<html lang="en">
<head>
<title>@title</title>
<link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/bootstrap.min.css")">
<link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
<link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.png")">
<script src="@routes.Assets.at("javascripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
<script src="@routes.Assets.at("javascripts/bootstrap.min.js")" type="text/javascript"></script>
</head>
<body>
<!--some stuff-->
@content
</body>
</html>
@(页面:字符串,标题:字符串)(内容:Html)
@头衔
@内容
因此,我尝试在视图主体中添加一个简单的
-首先在main.scala.html模板中
-然后在使用此模板的视图中
-最后,在一个thing.html中,没有链接,这与Play是一样的!我在浏览器中打开的框架:
<html lang="en">
<head>
<title>title</title>
</head>
<body>
<a href="#" onclick="alert('truc')">truc</a>
</body>
标题
只有第三个选项返回想要的结果:一个包含东西的弹出窗口
我的问题是:为什么我的javascript不由play处理?我是否必须“导入
”一些全局javascript功能才能使用它
感谢您的帮助,如果您需要更多信息,请告诉我。Play会生成正常的HTML代码-浏览器不关心是哪种软件生成了它,所以我怀疑,您在头脑中的某个JS文件路径中有一些错误,因此它避免运行其他脚本,在浏览器中使用某种检查器来验证,确保所有资源都已正确下载。同时检查JS控制台,很可能显示了一些错误
另一方面,在视图中直接放置简单的JS通常是正确的,但是请记住,View的渲染器可能会考虑一些JS典型语法作为播放的标记,或者一些东西,因此,在渲染JS未被这个过程损坏后,仍然需要控制。对于希望使用更高级JS的视图,使用与
jquery.JS
或bootstrap.JS
相同的方式从静态文件中包含JS绝对安全(也更舒适)
@main(title = "my title") {
<h1>Other html<h1>
<p>My js here</p>
<a href="#" onclick="alert('truc')">truc</a>
}
@main(title=“我的标题”){
其他html
我的js在这里
}
附言:
如果它是有用的,请不要忘记您不应该再使用白色的head、html和body标记,它已经包含在内了。否则,您将没有有效的html,并且它将在所有浏览器中呈现为不好的状态您的main
模板看起来很好,您是否已将javascript放入/public/javascripts
中,并且您的路由中是否有以下行:GET/assets/*file controllers.assets.at(path=“/public”,file)
?我确实有路径GET/assets/*file controllers.assets.at(path=“/public”,file)
,我的javascripts在/public/javascripts
文件夹中。CSP阻止javascript是个问题。但是谢谢!注意,只有在主模板中声明了head、body和html标记后,才能去掉它们。如果我在一个使用主模板的视图中使用js,那么你的建议是相关的,但是在这里,我声明了主模板,所以我需要编写这些标记!这是CSP的一个问题。感谢JS控制台的建议。