2013-08-17 30 views
0

我的错误在通过javascript访问wikipedia信息框中?
(我使用CodeIgniter的框架)我的错误在通过JavaScript访问维基百科信息框?

页面控制器

$data = array(
       'title' => 'My Title', 
       'country' => 'My Heading' 
     ); 

    $countrycodes = ['au', 'us']; 
    $countrynames = ['Australia', 'United_States']; 
    error_log(print_r($page, TRUE)); 
    $key = array_search($page, $countrycodes); 
    error_log(print_r($key, TRUE)); 
    if($key !=null){ 
    $data['country'] = $countrynames[$key]; 
    } 

    $this->load->helper('url'); 
    $this->load->helper('utility'); 

    $this->load->view('templates/header', $data); 
    $this->load->view('pages/'.$page, $data); 
    if(!is_null($key)){ 
    $this->load->view('templates/infobox', $data); 
    } 
    $this->load->view('templates/footer', $data); 

AU页

...

<div style =" position:absolute;top:90%; background: red;"> 
<?php echo $country; ?></div> // prints Australia. 
<script type="text/javascript" src="<?php echo base_url(); ?>assets/js/country.js"></script> 
// variable isnt formed yet to be picked up by javascript. 

信息模板

国家的JavaScript

$(window).load(function(){ 
     var searchTerm= $(".info-box").attr("id"); 

     alert(searchTerm); 
     //searchTerm= "Australia"; 

     var url="http://en.wikipedia.org/w/api.php?action=parse&format=json&page=" + searchTerm+"&redirects&prop=text&callback=?"; 
     $.getJSON(url,function(data){ 
      wikiHTML = data.parse.text["*"]; 
      $wikiDOM = $("<document>"+wikiHTML+"</document>"); 
      $("#result").append($wikiDOM.find('.infobox').html()); 
     }); 
}); 

我也试过身体的onload = “功能();”

browser source

+2

我认为你的错误分析是错误的。首先,所有的PHP都运行。所有变量都被回显。然后该页面被发送到浏览器。然后JavaScript运行。如果它不适用于Javascript,请检查源代码是否有错误。也许PHP打印错误。也许Javascript会提取错误的东西。但是对于Javascript而言,PHP没有时间问题。 – Sven

+0

功能在哪里base_url() – Vector

+0

我同意@Sven这个问题的前提是错误的。这是一个纯粹的Javascript问题。从我所看到的,你试图从错误的div中获取国家的价值(它不在.info-box div中)。 – rebroken

回答

0

使用身体的onload = “功能();”确实有用。我想我忘了插入一条线,然后跳过枪。

function loadWiki(){ 
     var searchTerm= $(".info-box").attr("id"); 

     var url="http://en.wikipedia.org/w/api.php?action=parse&format=json&page=" + searchTerm+"&redirects&prop=text&callback=?"; 
     $.getJSON(url,function(data){ 
      wikiHTML = data.parse.text["*"]; 
      $wikiDOM = $("<document>"+wikiHTML+"</document>"); 
      $("#result").append($wikiDOM.find('.infobox').html()); 
     }); 
    }