2013-08-01 7 views

ответ

3

Да, сценарий контента может связываться с введенной веб-страницей. Поскольку контекст сценария контента и вложенная веб-страница изолированы друг от друга, они должны взаимодействовать с общим DOM.

Я думаю, что сценарий содержимого не может поймать пользовательское событие, которое было запущено непосредственно с помощью введенной страницы. Но вы можете публиковать сообщение для скрипта контента, когда запускается специальное пользовательское событие. window.postMessage может соответствовать вашим потребностям.

Введенная страница:

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 
    <button id="btn">test</button> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
    <script> 
     $("#btn").click(function(){ 
      $(document).trigger("MY_EVENT"); 
     }); 
     $(document).on("MY_EVENT",function(){ 
      window.postMessage({ type: "HELLO", text: "Hello from the webpage!" }, "*"); 
     }); 
    </script> 
</body> 
</html> 

Содержания сценария:

window.addEventListener("message", function(event) { 

    if (event.source != window) 
    return; 

    if (event.data.type && (event.data.type == "HELLO")) { 
     alert("Content script received: " + event.data.text); 
    } 
}, false); 

Надеется, что это полезно для вас.

Смежные вопросы