2017-10-04 7 views
0

J'ai deux sites. Site "A" et du site "B"Il est possible de contrôler les fonctions JavaScript à partir d'une URL

"A" a une fonction JS qui ouvre une nouvelle page et charges site "B"

function siteB_link() { 
    window.open("https://www.siteB.com"); 
} 

Site "B" est un site unique paginée index.html construit avec <div> balises - Il a <div> balises que je dois contrôler grâce à des fonctions JS qui fonctionnent bien une fois sur place « B »

Comme je le mentionnais un seul site de page, donc il n'y a pas d'autres URL internes pour sauter.

Quelque chose comme: www.siteB.com/funcName() faire quelque chose

Je sais que ne fonctionnera pas du tout, mais quelque chose qui peut le faire.

Est-ce possible?

Répondre

1

Bien sûr, vous pouvez faire avec GET QueryString.

Comme ceci:

www.siteB.com/?jsFuncName=1

Vous pouvez accéder à ce code ci-dessous:

function getParameterByName(name, url) { 
    if (!url) url = window.location.href; 
    name = name.replace(/[\[\]]/g, "\\$&"); 
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), 
     results = regex.exec(url); 
    if (!results) return null; 
    if (!results[2]) return ''; 
    return decodeURIComponent(results[2].replace(/\+/g, " ")); 
} 

var foo = getParameterByName('jsFuncName'); // '1' 

si vous exécutez ce code lorsque l'événement DOMContentLoaded déclenché (dans jQuery, 'onload'), alors vous pouvez simplement faire comme ceci:

<script> 
    document.addEventListener('DOMContentLoaded', function() { 
     function getParameterByName(name, url) { 
      if (!url) url = window.location.href; 
      name = name.replace(/[\[\]]/g, "\\$&"); 
      var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), 
       results = regex.exec(url); 
      if (!results) return null; 
      if (!results[2]) return ''; 
      return decodeURIComponent(results[2].replace(/\+/g, " ")); 
     } 
     var foo = getParameterByName('jsFuncName'); // '1' 
     if (foo === '1') { 
      // execute function you want 
     } 
    }) 
</script> 

REF: How can I get query string values in JavaScript?

+0

J'apprécie la réponse détaillée. et votre temps pour écrire tout ça! Je vais absolument essayer ça. – NewCodeMan

+1

Cela fonctionne parfaitement! Merci encore – NewCodeMan

1

Vous ne pouvez pas utiliser www.siteB.com/funcName().

Mais vous pouvez utiliser www.siteB.com/?function='abc '.

Dans la page B, vous pouvez utiliser window.location.href pour obtenir l'URL, , puis "extraire" la valeur "function".

Enfin, vous pouvez baser sur la valeur "fonction" pour varier les actions.

+0

Merci, je vais essayer cela aussi – NewCodeMan