想要以编程方式单击网站按钮

I want to Click on a Website button that are already going on. For example: like url: www.google.com.. I want to Click Google Search button programmatically by using any method in PHP, Javascript, Jquery and Ajax. if Anyone know Solution. Please tell my and provide the source code.

Note: We dn't need to create own button we want to click on a website button by using class and id.

I want to try this..look like this but not success..I want to click Learn HTML button that are show on iframe...in w3school website..

<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<iframe src="http://www.w3schools.com" width="800" height="400"></iframe>

<script>
//setInterval(function () {$("#hand_1151079882").click();}, 3000);

function clime(){
setInterval(function () {document.getElementById("#w3-btn").click();}, 3000);
alert();
}
//using javascript 
$(document).ready(function () {
$(".cli").on('click', function(event){
    $("#w3-btn").trigger('click');
});

});

</script>
<input type="button" class="cli" name="clime" value="submit" onclick="clime()">

You seem to be missing the element with the id w3-btn which gets clicked programmatically.

Also, it seems both of these are doing the same thing ...

function clime(){
setInterval(function () {document.getElementById("#w3-btn").click();}, 3000);
alert();
}

and

$(document).ready(function () {
$(".cli").on('click', function(event){
    $("#w3-btn").trigger('click');
});

});

both are trying to click an element with id w3-btn, just in different ways. You only need one of them.

This might help:

<script>
jQuery(function(){
   jQuery('#modal').click();
});
</script>

I got this answer from here.

you need set id for iframe

var iframe = document.getElementById('w3schools-home');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
innerDoc.getElementsByClassName('w3-btn')[0].click();

[0] is for button Learn HTML, there 19 element have class w3-btn

Tested and Work on w3schools Try it Yourself »

IMPORTANT: Make sure that the iframe is on the same domain, otherwise you can't get access to its internals. That would be cross-site scripting.


as Requested, here example PHP for get Element and Recreated to your own sites.

<?php
$url='http://www.w3schools.com/css/default.asp'; // or use $_GET['url']
$scheme=parse_url($url)['scheme'];
$host=parse_url($url)['host'];
$domain=$scheme.'://'.$host;
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_HEADER, 0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_TIMEOUT,30);
curl_setopt($ch,CURLOPT_POST, 0);
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTML(substr(curl_exec($ch), curl_getinfo($ch, CURLINFO_HEADER_SIZE)));

$xpath = new DOMXpath($dom);
$aElement = $xpath->query('//a');

$length = $aElement->length;
$links=array();
for ($i = 0; $i < $length; $i++) {
    $element = $aElement->item($i);
    if ($element->tagName=='a' && trim($element->textContent)<>'') {
        foreach ($element->attributes as $attr) {
            $attrName = $attr->nodeName;
            $attrVal = $attr->nodeValue;
            if($attrName=='href' && str_replace(';','',$attrVal)<>'javascript:void(0)'){
                if(substr($attrVal, 0, 1)=='/'){
                    $links[trim($element->textContent)]=$domain.$attrVal;
                }else if(substr($attrVal, 0, 4)=='http'){
                    $links[trim($element->textContent)]=$attrVal;
                }
            }
        }
    }
}

foreach ($links as $key=>$value) {
    echo '<a href="'.$value.'">'.$key.'</a> | ';
}

You can create a javascript function to get URL from iframe and than request AJAX to PHP that have script ABOVE, you can use echo(but need foreach as example from my script) or json_encode to array $links, then reCREATED button from other url/website to your sites.

or just echo to your sites.

My script still need improvement to handle value of attribut href that use '../' or 'foldername/'

just reminder, for get access ELEMENTS on iframe that pointing to different domain is impossible.