NiGhTFrosT
NiGhTFrosT

Reputation: 33

chrome extension passing multiple message to external site by sharing local storage

**

RESOLVED

**

I'm developing a chrome extension. reading on stackoverflow I was able to share the local storage between different domains and to send a data from the extension to my external site.

what I would like to do, however, is to send more than one message to the external site. how can i adapt the code i am using? i am not very familiar with js, sorry

This is the code on popup.html -> extension (function perfectly)

window.onload = function() {
    var receiver = document.getElementById('receiver').contentWindow;

    var btn = document.getElementById('send');

    function sendMessage(e) {
          e.preventDefault();

        receiver.postMessage(document.getElementById('D1').value, 'http://externalsite');

    }

    btn.addEventListener('click', sendMessage);
}

This is the code on external site -> receiver

window.onload=function(){ var messageEle=document.getElementById('message');

window.addEventListener('message',receiveMessage);
function receiveMessage(e){
    if(e.origin!=="chrome-extension://ldjfmalmmomhpjmoeemlaingagdhagjl")
    return;
    messageEle.value = e.data;
}
}

What i need is send more of

   receiver.postMessage(document.getElementById('D1').value, 'http://externalsite');

for example

receiver.postMessage(document.getElementById('D1').value, 'http://externalsite');
receiver.postMessage(document.getElementById('D2').value, 'http://externalsite');
receiver.postMessage(document.getElementById('D3').value, 'http://externalsite');

Thanks a lot

Upvotes: 1

Views: 282

Answers (1)

NiGhTFrosT
NiGhTFrosT

Reputation: 33

for helping other, i resolve in this mode

in popup.html code on extension

window.onload = function() {
    var receiver = document.getElementById('receiver').contentWindow;
    var data = {
        domanda1: (document.getElementById('D1').value),
        domanda2: (document.getElementById('D2').value),
        domanda3: (document.getElementById('D3').value)
};

    var btn = document.getElementById('send');

    function sendMessage(e) {
        e.preventDefault();

        receiver.postMessage(data, 'externaldomain');

    }

    btn.addEventListener('click', sendMessage);
}

and in the receiver page -external site- with code

window.onload=function(){
    var domanda1=document.getElementById('domanda1');
    var domanda2=document.getElementById('domanda2');
    var domanda3=document.getElementById('domanda3');

    window.addEventListener('message',receiveMessage);
    function receiveMessage(e){
        if(e.origin!=="chrome-extension://ldjfmalmmomhpjmoeemlaingagdhagjl")
        return;
        domanda1.value = e.data.domanda1;
        domanda2.value = e.data.domanda2;
        domanda3.value = e.data.domanda3;
    }
}

ps = thanks to wOxxOm for help

Upvotes: 1

Related Questions