2017-09-08 47 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>

我的基本宗旨是「通過電子郵件分享」插入頁面上的按鈕,這將縮短地址欄,打開用戶的電子郵件客戶端/ WhatsApp的應用程序的URL來分享網址..

顯然我找不到一種方法將這兩個功能合併爲一個,因爲我不是一個非常有經驗的js人。我找到的原始解決方案是自動點擊第一個函數,獲取短url,然後找到一個不同的代碼,將它插入到「mailto」鏈接的主體中,這將是我的第二個挑戰。

+0

是什麼讓你覺得它不工作? – DNKROZ

+0

如果您點擊按鈕,網址縮短器正在工作,但我希望按鈕在頁面加載時自動點擊,這不會發生 –

+0

我看不到任何與自動點擊按鈕有關的代碼 – DNKROZ

回答

0

要如果使用jQuery的編程點擊頁面加載

按鈕:

$(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'函數中,你正在調用你的按鈕提交。然而,你想運行的函數'makeShort()'被放置在一個'onClick'處理程序中......以你想要的方式工作,只需要改變你調用提交到我已經發布的代碼的地方它調用點擊 – DNKROZ

+0

我有點不確定爲什麼你要這樣做,無論如何..爲什麼不只是在頁面加載時調用'makeShort()',並且它已經綁定到按鈕點擊?似乎自動點擊一個按鈕是錯誤的 – DNKROZ