[javascript] div 요소에 onload 이벤트를 추가하는 방법

onload요소에 이벤트를 어떻게 추가 합니까?

사용해도 되나요:

<div onload="oQuickReply.swap();" ></div>

이것을 위해?



답변

아냐, 못해 작동시키는 가장 쉬운 방법은 요소 바로 뒤에 함수 호출을 넣는 것입니다.

예:

...
<div id="somid">Some content</div>
<script type="text/javascript">
   oQuickReply.swap('somid');
</script>
...

또는 훨씬 더 나은 것 </body>:

...
<script type="text/javascript">
   oQuickReply.swap('somid');
</script>
</body>

… 따라서 다음 내용이로드되는 것을 차단하지 않습니다.


답변

onload이벤트에만 사용할 수 있습니다 document(body)자체, 프레임, 이미지, 스크립트. 즉, 본문 및 / 또는 각 외부 리소스 에만 연결할 수 있습니다 . div는 외부 리소스가 아니며 본문의 일부로로드되므로 onload이벤트가 적용되지 않습니다.


답변

onerror를 사용하고 src를 사용하지 않고 IMG 요소에서 일부 j를 자동으로 트리거 할 수 있습니다.

<img src onerror='alert()'>


답변

onload 이벤트는 아래 나열된 것과 같은 몇 가지 태그 만 지원합니다.

<body>, <frame>, <iframe>, <img>, <input type="image">, <link>, <script>, <style>

다음은 onload 이벤트에 대한 참조입니다.


답변

이 시도! 그리고 div에서 트리거를 두 번 사용하지 마십시오!

div 태그 전에 호출 할 함수를 정의 할 수 있습니다.

$(function(){
    $('div[onload]').trigger('onload');
});

데모 : jsfiddle


답변

div의로드 이벤트에서 함수를 호출하려는 경우 jQuery를 사용하지 않으려는 경우 (내 경우와 같이 충돌하기 때문에) 모든 HTML 코드 또는 함수 코드를 포함하여 작성한 다른 코드는 단순히 함수를 호출합니다.

/* All Other Code*/
-----
------
/* ----At the end ---- */
<script type="text/javascript">
   function_name();
</script>

또는

/* All Other Code*/
-----
------
/* ----At the end ---- */
<script type="text/javascript">
 function my_func(){
   function definition;

  }

 my_func();
</script>


답변

MutationObserver를 사용하여 아래 샘플 코드를 효율적으로 추가하여 문제를 해결할 수 있습니다.

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style>
        #second{
            position: absolute;
            width: 100px;
            height: 100px;
            background-color: #a1a1a1;
        }
    </style>
</head>
<body>
<div id="first"></div>
<script>
    var callthis = function(element){
           element.setAttribute("tabIndex",0);
        element.focus();
        element.onkeydown = handler;
        function handler(){
                alert("called")
        }
    }


    var observer = new WebKitMutationObserver(function(mutations) {
        mutations.forEach(function(mutation) {
            for (var i = 0; i < mutation.addedNodes.length; i++)
            if(mutation.addedNodes[i].id === "second"){
                callthis(mutation.addedNodes[i]);
            }

        })
    });
    observer.observe(document.getElementById("first"), { childList: true });


    var ele = document.createElement('div');
    ele.id = "second"

    document.getElementById("first").appendChild(ele);

</script>

</body>
</html>