2012-09-04 41 views
1

在銀色條紋項目中我通過ajax加載整個頁面。因此,我添加到頁面-位指示如下功能:Silverstripe - 通過ajax載入頁面,其中包含CSS/JS

public function ajax(){ 
    return $this->renderWith('MyTemplate'); 
} 

這工作正常,到目前爲止,我得到瀏覽到mysite.com/mypage/ajax時,頁面呈現爲我想。唯一的問題是附帶的JS/CSS文件模板「MyTemplate的」:

<% require javascript(my.js) %> 
<% require css(my.css) %> 

的CSS/JS在源代碼中顯示不出來 - 不知何故不包含它,雖然它是模板的一部分「MyTemplate的」。

那麼有沒有辦法用silverstripe方法以一種很酷的方式添加css/js?

我嘗試這樣做:

public function ajax(){ 
    Requirements::css("my.js"); 
    return $this->renderWith('ProjectPage'); 
} 

,但沒有成功爲止。 非常感謝, 弗洛裏安

回答

1

你需要下面的JavaScript文件加載到你的網站,這取決於silverstripe版本:

SS3 - /framework/javascript/jquery-ondemand/jquery.ondemand.js

OR

SS2.4 - /藍寶石/ JavaScript的/核心/ jquery.ondemand.js

據我瞭解;當您發出ajax請求時,任何新的css或javascript要求都會添加到請求標頭中。然後,當請求成功時,ondemand.js會將這些腳本拉到文檔中,如果它們不在那裏的話。

+0

嗨,謝謝!我必須在哪裏添加腳本?我現在在主Page.ss中添加它:<%require javascript(framework/javascript/jquery-ondemand/jquery.ondemand.js)%> 但是不知何故...... – spierala

+0

也許它不起作用。這裏在Ideas/Problems(http://doc.silverstripe.org/framework/en/reference/requirements)部分提到,它們只包括在ajax調用之前加載的頁面中所需的所有腳本。 – spierala

相關問題