Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SilverStripe中的页脚后插入JavaScript_Javascript_Silverstripe_Phaser Framework - Fatal编程技术网

在SilverStripe中的页脚后插入JavaScript

在SilverStripe中的页脚后插入JavaScript,javascript,silverstripe,phaser-framework,Javascript,Silverstripe,Phaser Framework,为什么我的JavaScript出现在页脚后面?下面是我在布局(Page.ss)中的代码: $Title window.onload=函数(){ var game=new Phaser.game(800600,Phaser.AUTO,,{preload:preload,create:create}); 函数预加载(){ game.load.image('logo','phaser.png'); } 函数create(){ var logo=game.add.sprite(game.world.c

为什么我的JavaScript出现在页脚后面?下面是我在布局(Page.ss)中的代码:


$Title
window.onload=函数(){
var game=new Phaser.game(800600,Phaser.AUTO,,{preload:preload,create:create});
函数预加载(){
game.load.image('logo','phaser.png');
}
函数create(){
var logo=game.add.sprite(game.world.centerX,game.world.centerY,'logo');
logo.anchor.setTo(0.5,0.5);
}
};
$Form
$CommentsForm

默认情况下,SilverStripe包含页面正文底部的所有JavaScript文件。这是为了允许在加载任何JavaScript之前加载所有其他站点资源

如果布局或包含模板中有脚本标记,则会将脚本移动到主体标记的底部

如果不想移动脚本标记,可以在
页面\u控制器
init()
函数中:

类页面\u控制器扩展ContentController{
公共函数init(){
父::init();
要求:将_write_js_设置为_body(false);
}
}

注意,这将把您的所有需求(包括JavaScript文件)移动到
标记。

如果您想要更多的控制,另一个选项是使用此选项:

然后将以下内容添加到页面\控制器::init或mysite/\ u config.php:

Requirements::set_backend(new BetterRequirementsBackend());
并加上:

<!-- INSERT JS HERE -->



到您的模板。通过这种方式,您可以精确控制注射发生的位置。请注意,您可能希望在上面的类中将第23行更改为=false,或在yaml config中重写它。

I添加了Requirements::set_write_js_to_body(false);在_config.php中,我的javascript输出仍然显示在页面底部?谢谢。我做了个测试,它对我很有用。在你的配置中,你可以把
die('Hello')测试该行是否被调用?似乎正在调用Requirements::set_write_js_to_body(false)。但是Javascript输出仍然在底部?请在您的Page.php文件中,在类页面下的public function init()部分中尝试_Controller@user3257693-谢谢你的反馈。我根据你的建议编辑了我的答案。
<!-- INSERT JS HERE -->
<!-- INSERT CSS HERE -->