2017-12-08 33 views
0

모두 좋은 하루 보내고 있습니다! POST 헤더가있는 페이지의 링크를 자동으로 여는 북마크릿을 만들려고했지만 마지막 링크 만 새 페이지로 확장되었습니다. 어떤 이유는? 이유에 있는가 (그렇다면, 어떻게 그것을 고치 볼 수 있었다?) POST가 포함 된 Javascript 북마크의 새 탭

javascript: (function() { 
     function openWindowWithPost(url, data) { 
      var form = document.createElement("form"); 
      form.target = "_blank"; 
      form.method = "POST"; 
      form.action = url; 
      form.style.display = "none"; 

      for (var key in data) { 
       var input = document.createElement("input"); 
       input.type = "hidden"; 
       input.name = key; 
       input.value = data[key]; 
       form.appendChild(input); 
      } 

      document.body.appendChild(form); 
      form.submit(); 
      document.body.removeChild(form); 
     } 
     var els = document.getElementsByTagName("a"); 
     for (var i = 0, l = els.length; i < l; i++) { 
      var el = els[i]; 

      console.log(typeof el.href); 
      console.log(el.href); 
      if (el.href.startsWith('example.com')) { 
       console.log(el.href.slice(39)); 
       openWindowWithPost("example.php", { 
        id: el.href.slice(39), 
        pdf: "-" 
       }); 
      } 
     } 
    })(); 

감사합니다!

답변

0

JavaScript 코드는 마치 코드 에서처럼 (익숙한 것처럼) 의 제한 사항으로 실행됩니다.

브라우저는 페이지의 JavaScript 코드가 무제한의 창을 열도록 허용하지 않습니다. 그 이유는 브라우저가 악의적 인 사이트에 의해 악용 되었기 때문입니다. 따라서 페이지의 코드가이를 시도하면 브라우저가이를 방지합니다. 의 내용은이 그것을 방지하고 어떤 일이 일어나도록 허용하는지는 브라우저에 따라 다릅니다.

사용자가 열려고하는 윈도우 당 사용자 이벤트가 있어야합니다 (예 : 북마크릿을 반복적으로 실행하고 북마크릿을 한 번에 하나의 링크로 실행).