it-swarm-ko.tech

body.onload 이벤트를 어떻게 실행합니까?

배경:

(*) 저는 JavaScript를 사용합니다. 필요할 때 덤벼 듭니다.

(*) <body onload="..."/>에서 호출하여로드 한 더미 페이지로 테스트 한 자바 스크립트 조각이 있습니다. 내가 원하는 것을 수행합니다. ( https://github.com/cwestin/bobt/blob/master/site/style/article.html 및 형제 파일 http://github.com/cwestin /bobt/blob/master/site/style/bobt.js ).

(*)이 onload 동작을 내 Drupal 사이트에 추가하고 싶습니다.

여기서 Drupal 7 모듈을 만드는 방법에 대한 지침을 따랐습니다 : http://drupal.org/node/361112 .

그러나 이것은 PHP 콘텐츠를 생성하는 블록 모듈 개발을 목표로합니다. JS 파일 만 있으면 콘텐츠의 필터링되지 않은 HTML 마크 업에 넣은 일부 div 클래스에서 작동합니다.

또한 JavaScript 관리에 대한 지침을 여기에서 찾을 수 있습니다 : http://drupal.org/node/756722 .

그리고이 사이트를 검색하면 JS 포함에 대한 다음 지침을 찾았습니다. 내 사이트의 모든 페이지에 javascript/jQuery OnLoad를 포함시키는 가장 좋은 방법 . 그러나 그것은 실제로 내가 제기 할 수있는 질문에 대답하지 않은 것 같습니다.

그러나이 불완전한 지침을 최대한 준수하여 모듈을 만들면 JS가 트리거되는 것처럼 보이지 않습니다. View Source는 내 .js 파일이 페이지에 포함되어 있지만 변환이 일어나지 않는다는 것을 보여줍니다 (내 더미 테스트 페이지에서 작동했습니다). jQuery로 올바르게 번역하지 않을 수 있습니다. 나는 그것을 이전에 사용한 적이 없으며 구문은 명백히 오래된 JS가 아닙니다.

모듈은 다음과 같습니다. https://github.com/cwestin/bobt/tree/master/site/style/sectiontoc . 보시다시피 으시시 한 function($) thingy에서 맨 아래의 attach()에 내 동작을 추가하기 위해 필요한 $(document).ready을 추가합니다. 그러나 내가 말했듯이, 그것은 트리거되지 않습니다.

누구든지 내가 빠진 부분이나 내가 뭘 잘못하고 있는지 말해 줄 수 있습니까? 도움을 주셔서 감사합니다.

3
Chris Westin

이것이 가장 정확하거나 가장 우아한 솔루션인지 확실하지 않지만 나에게 효과적입니다. 이 기능을 사용하여 페이지로드시 메시지를 자동으로 처리합니다.

(function ($) {
        $(document).ready(function() {     
        $("div.messages").delay(10000).fadeOut("slow");
    });})(jQuery)

나는 이것을 선 하위 테마와 함께 사용하고 다음과 같이 .info 파일에 포함시킵니다.

scripts[] = js/scripts.js

도움이되기를 바랍니다.

-제이

3
rakke

Drupal.behaviors 첨부 파일 안에 $ (document) .ready를 넣는 것은 중복됩니다.

첨부 지점은 문서가 준비 될 때 실행된다는 것입니다.

3
tim.plunkett