JS自动点击不起作用

时间:2017-09-08 10:44:06

标签: javascript triggers automation

编辑:

我想我找到了解决方案。可能有点原始但插入这里直到有人提出更好的解决方案。

谢谢!



<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(){
    	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>	
&#13;
&#13;
&#13;

有人可以建议为什么这个&#34;自动点击&#34;函数在我的代码下面不起作用?

&#13;
&#13;
    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;
&#13;
<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>
&#13;
&#13;
&#13;

我的基本目标是通过电子邮件插入&#34;分享&#34;页面上的按钮会缩短地址栏上的网址并打开用户的电子邮件客户端/ whatsapp应用程序以共享该网址。

显然我找不到将这两个功能合二为一的方法,因为我不是一个非常有经验的人。我找到的原始解决方案是自动点击第一个函数,获取短网址,然后找到一个不同的代码将其插入到&#34; mailto&#34;的主体中。链接,这将是我的第二个挑战。

1 个答案:

答案 0 :(得分:0)

以编程方式单击页面加载时的按钮

如果您使用的是jQuery:

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

普通javascript:

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