2016-10-05 3 views
0

나는이 북마크릿의 원래 작성자가 아니지만 페이지를로드 한 후 스크립트를 실행하기 위해 개선/업데이트하려고합니다. 페이지가로드 될 때 북마크릿을 치고 싶습니다. 마지막으로로드 할 때 작업을 수행합니다. . 나는 아무 소용 $ (문서) .ready와 jQuery를 (문서) .ready (함수 ($)의 여러 형태를 시도했습니다 도움을 주시기 바랍니다 당신에게페이지가 자바 스크립트/jquery에서로드 된 후 스크립트 실행

javascript:(function(){ 
function setName(){ 
    jQuery.noConflict(); 
    jQuery("#456_linier").dblclick(); 
    jQuery("#456").val("First Name Last"); 
    jQuery("input[title='Save']").click(); 
} 

if (typeof jQuery == 'undefined') { 
    var s = document.createElement('script'); 
    s.setAttribute('src','https://code.jquery.com/jquery-3.1.1.min.js'); 
    s.setAttribute('type','text/javascript'); 
    document.getElementsByTagName('head')[0].appendChild(s); 
    } 
    setTimeout(setName, 1000); })(); 

답변

1

참고 감사합니다. "페이지가로드 한 후"수 많은 것을 의미한다, 그래서 나는 그 상당히 강력한 해석의 계산, "모든 HTML로드 후에"로 해석

이 조금 바닐라 자바 ​​스크립트와 함께, 당신을 돌봐해야합니다.

document.addEventListener("DOMContentLoaded", function(event) { 
    console.log("Whatup Homie!!!"); 
}); 
+0

내가 (기능에서는 setName'전에 추가) {'유감스럽게도 코드 페이지가 완전히로드 된 후 북마크 렛을 다시 누를 때까지 실행되지 않습니다. – dcc

+0

요 - 여기에 추가 된 내용 –

0

이 기능을 포장 선언은 그것을하지 않을 것이고, 어쨌든 setTimeout은 당신이하지 않으면 함수를 autofire한다고 생각한다. 그것은 콜백을 좋아한다. 이 시도 :

enter image description here

또는 잠재적으로이 전략을,의 EventListener와 부하 함수 자체 내부 : 여전히 'didn를

enter image description here

+0

원본 document.addEventListener를 제거하고 맨 아래에 놓은 것을 추가하고 (맨 아래에있는'setTimeout (setName, 1000); '을 제거함) 이제는 아무 일도 일어나지 않습니다. 모두와 나는 이상한 것을 발견하고있는 어느 쪽의 콘솔이라도 조금의 과실도 얻지 않고있다. 코드가 질문에 쓰여진 원래의 모습은 페이지가 완전히로드 될 때까지 작동하지 않습니다. 도와 주셔서 감사합니다! – dcc

관련 문제