Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取iFrame中标记之间的文本_Javascript_Jquery_Html_Iframe - Fatal编程技术网

Javascript 获取iFrame中标记之间的文本

Javascript 获取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中加载网站。我正在尝试获取介于和之间的文本,并将其显示在文本框中

这是我的HTML

 <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);

 ?>