我想在用戶使用IE時禁用JavaScript。有沒有辦法在template.php或自定義模塊中完成此操作?Drupal以編程方式刪除JavaScript
回答
您可以使用template.php
中的preprocess_page()鉤子。
function YOUR_THEME_preprocess_page(&$vars) {
if (isset($_SERVER['HTTP_USER_AGENT']) && (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false)) {
$vars['scripts'] = 'get a mac!';
}
}
很顯然,你應該做些更聰明與$瓦爾[「腳本」]內容:)
很棒的建議。操作'Get a mac!'會工作,但$ var ['scripts']返回一串長長的.js文件。不幸的是,這意味着我無法取消設置不需要的JavaScript文件。但是,感謝您的建議。 – sisko
@sisko,你需要解析這個字符串,刪除你想要的,然後用餘數設置$ vars ['scripts']。 –
@sisko:也許它更好地做的瀏覽器在JavaScript文件中嗅探,並提供不同的JavaScript爲ie6? –
作爲替代處理的$vars['scripts']
的內容,這是包含在HTML以輸出字符串<head>
標籤,你可以使用從drupal_add_js(NULL, NULL, 'header')返回的值,它類似於以下之一:
$header_javascript = array(
'core' => array(
'misc/jquery.js' => array(
'cache' => TRUE,
'defer' => FALSE,
'preprocess' => TRUE,
),
'misc/drupal.js' => array(
'cache' => TRUE,
'defer' => FALSE,
'preprocess' => TRUE,
),
),
'module' => array(),
'theme' => array(),
'setting' => array(
array('basePath' => base_path()),
),
'inline' => array(),
);
「模塊」索引中包含的參考,從模塊添加的JavaScript文件, 「設置」包含模塊通常添加的所有JavaScript設置,「內聯」包含內聯JavaScript代碼。
如果您需要區分不同的JavaScript文件,並且(例如)不觸摸任何已標記爲「核心」的JavaScript文件,它可能會有所幫助。
平衡是爲了填充$vars['scripts']
的內容,您需要複製drupal_get_js()中使用的部分代碼。因爲你需要一個定製的代碼,你不會複製該函數的所有代碼,但你仍然會複製它的一部分。
在Drupal 7中,變量$vars['scripts']
不再被傳遞到template_preprocess_page()
(以及由模塊或主題實現的類似預處理函數);它傳遞給template_preprocess_html()。
- 1. 如何以編程方式刪除Drupal中的圖像樣式?
- 2. 如何以編程方式刪除drupal中的論壇評論?
- 3. 以編程方式刪除控件
- 4. Angular2以編程方式刪除組件。
- 5. data.table - 以編程方式刪除列
- 6. 如何以編程方式刪除AlertDialog
- 7. HTML5 appcache以編程方式刪除
- 8. 如何以編程方式刪除plist?
- 9. NSArrayController - 添加:&刪除:以編程方式
- 10. 以編程方式刪除NavigationController
- 11. 以編程方式刪除Web.config設置
- 12. 以編程方式刪除UITableViewCell
- 13. 以編程方式刪除TFS分支
- 14. 以編程方式刪除Twitter帳戶
- 15. 以編程方式刪除IE6 cookies
- 16. 以編程方式刪除prestashop訂單
- 17. 如何以編程方式刪除layout_marginStart
- 18. 以編程方式刪除datagrid列
- 19. 以編程方式刪除Outlook簽名
- 20. FLEX:以編程方式刪除警報?
- 21. ActiveMQ - 以編程方式刪除隊列
- 22. 以編程方式刪除field_group
- 23. 以編程方式刪除PageViewController
- 24. 編程方式刪除
- 25. 以編程方式從TFS2012刪除/刪除TestSuite使用API
- 26. 以編程方式使用drupal [令牌]
- 27. 以編程方式Drupal博客條目
- 28. Drupal以編程方式刪除節點類型和/或cck字段
- 29. drupal以編程方式禁用或刪除節點創建節點鏈接
- 30. 以編程方式刪除特定的送貨方式 - WooCommerce
爲什麼? ----------- –
@Pekka:懲罰他們。這將學習'時間。 –
@George,但有很多更有效的方法來做到這一點!例如,將它們重定向到rotten.com或lemonparty。或者運行[地震效果](http://www.java-scripts.net/javascripts/Windows-Earthquake.phtml)(仍然在IE中工作,耶!) –