我正在尝试将以下代码段添加到我的Drupal 7网站,但我不知道该把它放到哪里。我真的只想在一个特定的博客文章中,但如果它更容易申请整个网站,也可以。
$(function() {
$('a[href*=#]:not([href=#])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('html,body').animate({
scrollTop: target.offset().top
}, 1000);
return false;
}
}
});
});
Screenshot of website file structure
我以为我可以将它弹出到common.js文件中,但是当我这样做时,没有任何变化。这是代码:
$(document).ready(function(){
// Remove scrollbar placed for non flicking carousel/no js version, show the thumbnails
$("#carousels").css("height","auto").css("overflow","visible");
$("#carousels .thumbs").css("display","block");
$(function() {
$('a[href*=#]:not([href=#])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('html,body').animate({
scrollTop: target.offset().top
}, 1000);
return false;
}
}
});
});
)};
有关如何添加此功能的任何想法?
答案 0 :(得分:0)
您可以使用以下代码将JS文件添加到特定页面。因此,想象一下您要添加代码的页面是www.yourwebsite.com/node/9
function yourmodule_page_alter(&$page) {
$pathElements = explode('/', current_path());
if (count($pathElements) == 2 && $pathElements[0] == 'node' && $pathElements[1] == '9') {
global $base_url;
$path = $base_url . '/' . drupal_get_path('module','yourmodule');
drupal_add_js(
$path . "/includes/js/yourcustom.js",
array(
'type' => 'file',
'scope' => 'header',
)
);
}
}
您可以找到有关hook_page_alter()
here的更多信息以及有关drupal_add_js()
here的更多信息。