Cómo llamar a la ventana principal Función de JavaScript dentro de iframe

Aquí está mi código en http://my-localhost.com/iframe-test.html

  Welcome Iframe Test    function alertMyMessage(msg){ alert(msg); }    

Aquí hay un código en http://www.my-website.com/index.html

  Welcome to my Server  

Welcome to My Server Click Here

Cuando hago clic en el enlace “Haga clic aquí”. Tengo el siguiente error.

Uncaught SecurityError: bloqueó un marco con origen ” http://www.my-website.com ” de acceder a un marco con origen ” http://my-localhost.com “. Los protocolos, los dominios y los puertos deben coincidir.

Ayúdenme a solucionar este problema o proporcione alguna otra solución para esto.

No puede acceder al DOM de una página cargada en un marco en un origen diferente. Esto está bloqueado por razones de seguridad (imagine un sitio web al azar que visitó abriendo su servicio de correo web en un iframe oculto y puede ver por qué).

Lo más cerca que puede venir, y solo si controla ambos sitios web, es pasar mensajes entre ellos usando la API de mensajería web .

En una página, escriba una función para manejar los mensajes y luego agréguela como un detector de eventos de mensaje.

 function receiveMessage(event) { alert(event.data); } addEventListener("message", receiveMessage, false); 

En el otro, envíe el mensaje:

 parent.postMessage("This is a message", "*"); 

Ver MDN para más información

¡Puedes usar postMessage!

PADRE

 if (window.addEventListener) { window.addEventListener ("message", receive, false); } else { if (window.attachEvent) { window.attachEvent("onmessage",receive, false); } } function receive(event){ var data = event.data; if(typeof(window[data.func]) == "function"){ window[data.func].call(null, data.params[0]); } } function alertMyMessage(msg){ alert(msg); } 

IFRAME

 function send(){ window.parent.window.postMessage( {'func':'alertMyMessage','params':['Thanks for Helping me']}, 'http://www.my-website.com' ); } 

REFERENCIA

https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage