jsonp点击按钮加载不同信息
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>无标题文档</title> <script> function fn1(data) { //在ul1里显示信息 var oUl1 = document.getElementById('ul1'); var html = ''; for (var i=0; i<data.length; i++) { html += '<li>'+data[i]+'</li>'; } oUl1.innerHTML = html; } function fn2(data) { //在ul2里显示信息 var oUl2 = document.getElementById('ul2'); var html = ''; for (var i=0; i<data.length; i++) { html += '<li>'+data[i]+'</li>'; } oUl2.innerHTML = html; } function fn3(data) { //在ul3里显示信息 var oUl3 = document.getElementById('ul3'); var html = ''; for (var i=0; i<data.length; i++) { html += '<li>'+data[i]+'</li>'; } oUl3.innerHTML = html; } </script> <script> window.onload = function() { var oBtn1 = document.getElementById('btn1'); var oBtn2 = document.getElementById('btn2'); oBtn1.onclick = function() { var oScript = document.createElement('script'); oScript.src = 'getData.php?callback=fn1'; //传递参数fn1,执行函数fn1 document.body.appendChild(oScript); } var oBtn2 = document.getElementById('btn2'); oBtn2.onclick = function() { var oScript = document.createElement('script'); oScript.src = 'getData.php?t=str&callback=fn2'; //传递参数t为str,执行函数fn2 document.body.appendChild(oScript); } var oBtn3 = document.getElementById('btn3'); oBtn3.onclick = function() { var oScript = document.createElement('script'); oScript.src = 'getData.php?callback=fn3'; document.body.appendChild(oScript); } } </script> </head> <body> <input type="button" id="btn1" value="加载数字" /> <ul id="ul1"></ul> <input type="button" id="btn2" value="加载字母" /> <ul id="ul2"></ul> <input type="button" id="btn3" value="加载字母" /> <ul id="ul3"></ul> </body> </html>
PHP
<?php $t = isset($_GET['t']) ? $_GET['t'] : 'num'; //前端传递参数t,默认返回num $callback = isset($_GET['callback']) ? $_GET['callback'] : 'fn1'; //传递参数callback,默认fn1,自己写什么名,jsonp数据就是什么函数里,比如fn1({信息}) $arr1 = array('111111','22222222','33333333','4444444','555555555555555555555'); $arr2 = array('aaaaaaaaaaaa','bbbbbbbb','cccccccccccc','ddddddddd','eeeeeeeeeeee'); if ($t == 'num') { $data = json_encode($arr1); } else { $data = json_encode($arr2); } echo $callback.'('.$data.');';