it-swarm-ko.tech

내 사이트의 모든 페이지에 javascript / jQuery OnLoad를 포함시키는 가장 좋은 방법

현재 theme.info 파일에 2 개의 스크립트가 포함되어 있습니다 :

scripts[] = js/backstretch.js
scripts[] = js/scripts.js

Backstretch는 확장 된 배경 이미지가 전체 페이지를 덮을 수 있도록하는 jQuery 플러그인입니다.

현재이 코드를 사용하여 JS를 자동로드합니다.

(function ($) {

    var bgs=["bg1.jpg", "bg2.jpg"];
    var bgr=Math.floor(bgs.length * Math.random());
    $.backstretch(bgs[bgr], { speed: 1000 });

})(jQuery);

두 가지 문제 :

  1. 때때로 그것은 backstretch.js를 제대로로드하지 않아서 scripts.js의 현재 OnLoad 함수와 관련이있을 수 있습니다. 처음에는 이미지를로드하지만 브라우저의 최대 너비/높이는로드하지 않습니다.
  2. 어떤 이유로 든 사이트에서 1 레벨 이상으로 작동하지 않습니다 (사이트를 확인할 때 JS 가로 드되는 것처럼 보이지만 (이미지의 위치가 JS 파일과 관련이 없을 수 있습니까?)).

작품 : site.com, site.com/page

작동하지 않음 : site.com/dir/page, site.com/dir/dir/page

스크립트 파일에서 가장 OnPageLoad (또는 Preload?) 기능이 가장 적합한 기능이 무엇인지 궁금했습니다.

미리 감사드립니다.

3
Matt Rowles

드루팔에서 자바 스크립트 관리하기 , 특히 행동에 관한 섹션을 읽으십시오. 다음과 같은 작업을 수행해야합니다.

(function ($) {

  Drupal.behaviors.exampleModule = {
    attach: function(context, settings) {
      var bgs=["bg1.jpg", "bg2.jpg"];
      var bgr=Math.floor(bgs.length * Math.random());
      $.backstretch(bgs[bgr], { speed: 1000 });
    }
  };

})(jQuery);
6
tim.plunkett