2017-09-08 21 views
0

編集:JS自動クリックが機能しない

私はこの解決策を見つけたと思います。ちょっと原始的かもしれませんが、誰かがより良い解決策を思い付くまでここに挿入してください。

ありがとうございます!

<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

この「自動クリック」機能は、以下の私のコードで動作しない理由をいくつかのいずれかをお勧めすることはできますか?

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>

私の基本的な目的は、「電子メールを介して共有する」というURLを共有するためにアドレスバーとオープンユーザの電子メールクライアント/のWhatsAppアプリのURLを短くしますページ上のボタンを挿入することです..

私は非常に経験豊かなjs人ではないので、明らかに私はこれらの2つの機能を1つに結合する方法を見つけることができませんでした。私が見つけた基本的な解決策は、最初の関数を自動クリックし、短いURLを取得し、次にこれを「mailto」リンクの本文に挿入するための別のコードを見つけることです。あなたはjQueryのを使用している場合

+0

あなたはそれが働いていないどう思いますか? – DNKROZ

+0

ボタンをクリックするとURLショートネクタが動作していますが、ページロード時にボタンが自動的にクリックされるようにしたい場合は、 –

+0

ボタンをクリックすると関連するコードは表示されません – DNKROZ

答えて

0

は、プログラムで、ページの読み込み

上のボタンをクリックしてください:

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

平野JavaScriptを:

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

おそらく私のjsにはおそらく別のonload関数があるので動作していません? –

+0

はい、あります。あなたの 'window.onload'関数では、あなたのボタンでsubmitを呼び出しています。しかし、あなたが実行したい関数 'makeShort()'は 'onClick'ハンドラの中に置かれています...あなたが望むようにこれを動作させるには、私が投稿したコードへのサブミットを呼び出す場所を変更してくださいこれはクリックを呼び出すものです – DNKROZ

+0

私はなぜかこの方法をやりたがっているのか分かりません。ページの読み込み時に 'makeShort()'を呼び出すだけでなく、既に持っているようにボタンクリックにバインドするのはなぜですか?自動的にボタンをクリックするのが間違っているようだ – DNKROZ

関連する問題