Javascript 获取iFrame中标记之间的文本
我正在iFrame中加载网站。我正在尝试获取介于和之间的文本,并将其显示在文本框中 这是我的HTMLJavascript 获取iFrame中标记之间的文本,javascript,jquery,html,iframe,Javascript,Jquery,Html,Iframe,我正在iFrame中加载网站。我正在尝试获取介于和之间的文本,并将其显示在文本框中 这是我的HTML <iframe name="frameComp" class="frameComp" style="display:none" width="500" height="200"></iframe> 这是网站的源代码 <?xml version="1.0" ?> <response> <results> <
<iframe name="frameComp" class="frameComp" style="display:none" width="500" height="200"></iframe>
这是网站的源代码
<?xml version="1.0" ?>
<response>
<results>
<result item="1">
<status>OK</status>
<number>13105555555</number>
<wless>y</wless>
<carrier_name>Verizon Wireless</carrier_name>
<carrier_id>5</carrier_id>
<country>United States</country>
</result>
</results>
</response>
好的,不同的方法
$('button[name="otherlistbut"]').click(function()
{
var phonenum = $('input[name="phonenum"]').val();
$('<iframe id="frameComp" src="https://api.data24-7.com/v/2.0?user=USERNAME&pass=PASSWORD&api=C&p1=" + "1" + phonenum>').appendTo("body").ready(function()
{
// Wait until XML has actually loaded by testing if the required (known) element is there
var interval = setInterval(function()
{
var carrier = $('#frameComp').contents().find("carrier_name")
if(carrier.length > 0)
{
console.log(carrier.text());
clearInterval(interval);
$('#frameComp').remove(); // We no longer need the iframe...
}
}, 100);
});
});
希望这有帮助 与其将XML加载到iframe中,不如通过$.ajax下载它?@leetylor没有理由,这样会更好吗?为什么这很重要?我相信我在某个地方读到,如果网站与我的网站不在同一个域名上,我就不能这样做。你想得到什么价值?你的问题似乎没有说明…@leetylor修正了格式!我希望得到介于之间的值,但控制台中出现一个错误,表示…XMLHttpRequest无法加载。请求的资源上不存在“Access Control Allow Origin”标头。所以原产地是不允许进入的。啊,我知道这可能是个问题。然而,我希望一个具有凭据的API可能会允许这样做。那么,也许将其加载到iframe中就是解决这个问题的方法。然而,您能确定加载xml的iframe方法是否有效吗?是的,它是有效的,当我检查元素时,我可以清楚地看到我在寻找什么好的,所以我对我要替换的内容感到困惑。我是否留下我的html framecomp?我应该将您给我的代码放在哪里=/?错误消息Uncaught SecurityError:未能从“HTMLIFrameElement”读取“contentDocument”属性:阻止具有原点的帧访问具有原点的帧。协议、域和端口必须匹配。
<?php
$phonenum = $_POST["phonenum"];
$url = "http://api.data24-7.com/v/2.0?user=USERNAME&pass=PASSWORD&api=C&p1=" . "1" . $phonenum;
$provhtml = file_get_contents($url);
$start_tag = '<carrier_name>';
$end_tag = '</carrier_name>';
$startpos = strpos($provhtml, $start_tag) + strlen($start_tag);
if ($startpos !== false) {
$endpos = strpos($provhtml, $end_tag, $startpos);
if ($endpos !== false) {
$carrier = substr($provhtml, $startpos, $endpos - $startpos);
}
}
echo json_encode($carrier);
?>
<?php
$phonenum = $_POST["phonenum"];
$url = "http://api.data24-7.com/v/2.0?user=USERNAME&pass=PASSWORD&api=C&p1=" . "1" . $phonenum;
$provhtml = file_get_contents($url);
$start_tag = '<carrier_name>';
$end_tag = '</carrier_name>';
$startpos = strpos($provhtml, $start_tag) + strlen($start_tag);
if ($startpos !== false) {
$endpos = strpos($provhtml, $end_tag, $startpos);
if ($endpos !== false) {
$carrier = substr($provhtml, $startpos, $endpos - $startpos);
}
}
echo json_encode($carrier);
?>