我想点击一个已经在进行的网站按钮。例如:比如url: www.google.com..我想点击谷歌搜索按钮通过使用任何方法在PHP, Javascript, Jquery和Ajax编程。如果有人知道答案。请告诉我并提供源代码。
注意:我们不需要创建自己的按钮,我们想通过使用类和id来点击网站按钮。
我想试试这个,看起来像这样,但不成功,我想点击学习HTML按钮,显示在iframe…在w3school网站..
<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()">
您需要为iframe设置id
var iframe = document.getElementById('w3schools-home');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
innerDoc.getElementsByClassName('w3-btn')[0].click();
[0]
是按钮学习HTML,有19个元素有w3-btn
类
测试和工作w3schools自己试试»
IMPORTANT:确保iframe在同一域中,否则您无法访问其内部。这将是跨站点脚本。
作为请求,这里的例子PHP获取元素和重新创建到您自己的站点。
<?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> | ';
}
您可以创建一个javascript函数从iframe
和request AJAX
获得URL
到PHP,上面有脚本,您可以使用echo
(但需要从我的脚本中作为示例)或json_encode
到数组$links
,然后从其他url/网站到您的网站reCREATED按钮。
或仅echo
到您的网站。
我的脚本仍然需要改进来处理使用'../'
或'foldername/'
的属性href
的值
只是提醒,对于iframe
上的get access ELEMENTS,指向不同的域是不可能的。
您似乎错过了以编程方式单击的id为w3-btn
的元素。
而且,这两个似乎都在做同样的事情…
function clime(){
setInterval(function () {document.getElementById("#w3-btn").click();}, 3000);
alert();
}
和
$(document).ready(function () {
$(".cli").on('click', function(event){
$("#w3-btn").trigger('click');
});
});
都试图单击id为w3-btn
的元素,只是以不同的方式。你只需要其中一个。
这可能有帮助:
<script>
jQuery(function(){
jQuery('#modal').click();
});
</script>
我从这里得到了这个答案