js加载问题 本帖最后由 qq35610 于 2011-06-27 19:26:44 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //这样试试function a(i) { var ids = document.getElementById('ok'); var url = '1.php?t=' + t + '&id=' + i; ids.src = url;} 动态加载script,高手作品,可以看一下 现在的问题不是src属性无法赋值,而是<script>标签无法动态的载入内容 你的这个PHP文件输出的内容是JS代码吗? php代码<?php$id=$_GET['id'];if($id ==1){echo "document.write('<h1>abcdef</h1>')";}elseif($id==2){echo "document.write('<h2>12345</h2>')";}?> document.write()方法会创建新的文档流,你得用JS动态创建HTML元素才行,把PHP文件的代码改成这样试试:$id = $_GET['id'];if ($id == 1) { echo "var h1 = document.createElement('h1');\n"; echo "h1.innerHTML = 'abcdef';\n"; echo "document.getElementsByTagName('body')[0].appendChild(h1);\n";}elseif ($id == 2) { echo "var h1 = document.createElement('h1');\n"; echo "h1.innerHTML = '12345';\n"; echo "document.getElementsByTagName('body')[0].appendChild(h1);\n";} <script>标签无法动态的载入内容把1楼贴的代码,在本地测试一下,同时注意观察<srcipt id="ok">标签中的内容,你就明白真正的问题所在了 <script>function a(i){if(i==1){var ids=document.getElementById('ok');ids.setAttribute('src',"1.php?id=1");}else if(i==2){var ids=document.getElementById('ok');ids.setAttribute('src',"1.php?id=2");}}</script>这段不能放在head部分,得放到</body>前面就可以了 // 动态导入jsfunction include(src,encoding,fun) { var s = $C('script'); s.type='text/javascript'; s.charset=encoding; //'gb2312'; s.src = src; var tags =$$('head'); if(typeof(fun)=='function'){ if( document.all ){ s.onreadystatechange = function(){ if(/(complete|loaded)/.test(this.readyState)){ fun(); s.onreadystatechange = null; s.parentNode.removeChild(s); }}; }else{ s.onload = function(){ fun(); s.onload = null; s.parentNode.removeChild(s); }; } } tags[0].appendChild(s); };include('1.php?id=2','utf-8'); // 回调函数可空 $c何来,$$('head')何来,以测试了,找不到$c,没定义 想问一下,你有没有按照8楼的PHP代码在服务器端测试过,报错误了吗? 不报错,就是点击button的时候没效果 extjs代码执行不完全 在火狐中display该怎么设置?期待您的答复! javascript 变量名是另一个变量的值 jquery treeGrid javascript脚本不识别"&" 关于对特定字符串的解析的问题,请大家不吝赐教!! 问个问题,我想实现的效果没有被实现(动态添加DIV) 这个网站能值多少钱? 过圣诞,我也来散分! 再提问:如何用代码清ie的历史纪录? Ext GridPanel问题请教 求助用过jQuery+RequireJS的朋友
function a(i) {
var ids = document.getElementById('ok');
var url = '1.php?t=' + t + '&id=' + i;
ids.src = url;
}
php代码
<?php
$id=$_GET['id'];if($id ==1)
{
echo "document.write('<h1>abcdef</h1>')";
}elseif($id==2)
{
echo "document.write('<h2>12345</h2>')";
}?>
$id = $_GET['id'];
if ($id == 1) {
echo "var h1 = document.createElement('h1');\n";
echo "h1.innerHTML = 'abcdef';\n";
echo "document.getElementsByTagName('body')[0].appendChild(h1);\n";
}
elseif ($id == 2) {
echo "var h1 = document.createElement('h1');\n";
echo "h1.innerHTML = '12345';\n";
echo "document.getElementsByTagName('body')[0].appendChild(h1);\n";
}
把1楼贴的代码,在本地测试一下,同时注意观察<srcipt id="ok">标签中的内容,你就明白真正的问题所在了
function a(i)
{
if(i==1)
{
var ids=document.getElementById('ok');
ids.setAttribute('src',"1.php?id=1");
}else if(i==2)
{
var ids=document.getElementById('ok');
ids.setAttribute('src',"1.php?id=2");
}
}
</script>
这段不能放在head部分,得放到</body>前面就可以了
function include(src,encoding,fun)
{
var s = $C('script');
s.type='text/javascript';
s.charset=encoding; //'gb2312';
s.src = src;
var tags =$$('head');
if(typeof(fun)=='function'){
if( document.all ){
s.onreadystatechange = function(){
if(/(complete|loaded)/.test(this.readyState)){
fun(); s.onreadystatechange = null; s.parentNode.removeChild(s);
}};
}else{
s.onload = function(){ fun(); s.onload = null; s.parentNode.removeChild(s); };
}
}
tags[0].appendChild(s);
};include('1.php?id=2','utf-8'); // 回调函数可空
$c何来,$$('head')何来,以测试了,找不到$c,没定义
想问一下,你有没有按照8楼的PHP代码在服务器端测试过,报错误了吗?