2017-09-08 1 views
0

EDIT:Le clic automatique JS ne fonctionne pas

Je pense avoir trouvé une solution pour celui-ci. Peut-être un peu primitif mais en l'insérant ici jusqu'à ce que quelqu'un trouve une meilleure solution.

Merci!

<html> 
 
<body onload="makeShort()"> 
 

 
<p id="button" style=display:none; onclick="makeShort()">Click me.</p> 
 

 

 
    
 
<span id="output" style=display:none; >Wait. Loading....</span> 
 

 
    
 
</body> 
 
<head> 
 
</head> 
 
<script type="text/javascript"> 
 

 

 
function makeShort() 
 
{ 
 
    var longUrl=location.href;; 
 
    var request = gapi.client.urlshortener.url.insert({ 
 
     'resource': { 
 
     'longUrl': longUrl 
 
    } 
 
    }); 
 
    request.execute(function(response) 
 
    { 
 
    
 
     if(response.id != null) 
 
     { 
 
      str =""+response.id+""; 
 
      document.getElementById("output").innerHTML = str; 
 
     } 
 
     else 
 
     { 
 
      alert("error: creating short url n"+ response.error); 
 
     } 
 
    
 
    }); 
 
} 
 
window.onload = makeShort; 
 
    
 
function load() 
 
{ 
 
    //Get your own Browser API Key from https://code.google.com/apis/console/ 
 
    gapi.client.setApiKey('xxxxxx'); 
 
    gapi.client.load('urlshortener', 'v1',function(){document.getElementById("output").innerHTML="";}); 
 
    
 
} 
 
window.onload = load; 
 
</script> 
 

 
<script> 
 
setTimeout(function(){ 
 
    \t document.getElementById('button').click(); 
 
     },1000); 
 
</script> 
 

 

 

 
<script src="https://apis.google.com/js/client.js"> </script> 
 
    
 

 
</html> 
 

 

 

 

 
<html lang="en"> 
 
    <head> 
 
     <meta charset="utf-8"> 
 
     <title></title> 
 
     <script> 
 
      function SendLinkByMail(href) { 
 
       var subject= "Interesting Information"; 
 
       var body = document.getElementById("output").innerHTML; 
 
       body += " Interesting Information"; 
 
       var uri = "mailto:?subject="; 
 
       uri += encodeURIComponent(subject); 
 
       uri += "&body="; 
 
       uri += encodeURIComponent(body); 
 
       window.open(uri); 
 
      } 
 
     </script> 
 
    </head> 
 
    <body> 
 
     <p><a href="javascript:(function()%7BSendLinkByMail()%3B%7D)()%3B">Email link to this page</a></p> 
 
    </body> 
 
</html> \t

Quelqu'un peut expliquer pourquoi cette fonction "auto-cliquez sur" ne fonctionne pas dans mon code ci-dessous?

function makeShort() { 
 
    var longUrl = location.href;; 
 
    var request = gapi.client.urlshortener.url.insert({ 
 
     'resource': { 
 
      'longUrl': longUrl 
 
     } 
 
    }); 
 
    request.execute(function(response) { 
 

 
     if (response.id != null) { 
 
      str = "<b>Long URL:</b>" + longUrl + "<br>"; 
 
      str += "<b>Short URL:</b> <a href='" + response.id + "'>" + response.id + "</a><br>"; 
 
      document.getElementById("output").innerHTML = str; 
 
     } else { 
 
      alert("error: creating short url n" + response.error); 
 
     } 
 

 
    });} window.onload = function() { 
 
    var button = document.getElementById('modal'); 
 
    button.form.submit();}  
 
    function load() { 
 
    //Get your own Browser API Key from https://code.google.com/apis/console/ 
 
    gapi.client.setApiKey('xxxxxxxxx'); 
 
    gapi.client.load('urlshortener', 'v1', function() { 
 
     document.getElementById("output").innerHTML = ""; 
 
    });} window.onload = load;
<html> 
 

 
<input type="button" id="modal" value="Create Short" onclick="makeShort();" /> <br/> <br/> 
 

 
<div id="output">Wait. Loading....</div> 
 
    
 
<head> 
 
</head> 
 

 
<script src="https://apis.google.com/js/client.js"> </script> 
 
</html>

Mon but principal est d'insérer un bouton « partager par e-mail » sur la page qui raccourcirait l'URL dans la barre d'adresse et le client e-mail de l'utilisateur open/app WhatsApp pour partager cette URL ..

Évidemment, je ne pouvais pas trouver un moyen de combiner ces deux fonctions dans un seul car je ne suis pas une personne très expérimenté js. La solution primitive que je trouve est d'auto-cliquer sur la première fonction, obtenir l'URL courte, puis trouver un code différent pour insérer cela dans le corps du lien "mailto", ce qui sera mon deuxième défi.

+0

Qu'est-ce qui vous fait penser cela ne fonctionne pas? – DNKROZ

+0

Le raccourci url fonctionne si vous cliquez sur le bouton, mais je veux que le bouton soit cliqué automatiquement sur le chargement de la page, ce qui ne se passe pas –

+0

Je ne vois pas votre code qui se rapporte à un clic sur un bouton automatiquement – DNKROZ

Répondre

0

Pour cliquer sur un bouton programmation chargement de la page

Si vous utilisez jQuery:

$(function() { 
    $('#modal').click(); 
}); 

javascript plaine:

window.onload = function(){ 
    var event = document.createEvent('Event'); 
    event.initEvent('input', true, true); 
    document.getElementById("modal").dispatchEvent(event); 
}; 
+0

ne fonctionne pas parce qu'il y a déjà une fonction de charge différente dans mon js peut-être? –

+0

Oui, vous le faites. Dans votre fonction 'window.onload', vous appelez un submit sur votre bouton. Cependant, la fonction 'makeShort()' que vous voulez exécuter est placée dans un gestionnaire 'onClick' ... pour que cela fonctionne comme vous le souhaitez, changez simplement l'endroit où vous invoquez le soumettre au code que j'ai posté qui appelle un clic – DNKROZ

+0

Je ne sais pas très bien pourquoi vous voulez faire comme ça de toute façon .. pourquoi ne pas simplement appeler 'makeShort()' lors du chargement de la page et l'avoir lié au bouton click comme vous l'avez déjà fait? Semble mal d'être automatiquement en cliquant sur un bouton – DNKROZ