首先,感谢这个社区。我正在慢慢地开始理解这个东西,我很欣赏所有的反馈。这就是说,我带来另一个问题。如何使用javascript(和AJAX?)调用外部对象
现状: 我试图建立一个新的网站,我试图使用它作为一个学习经验使用一些PHP和教自己的JavaScript(注意,我想要坚持与JS现在并没有跳转到jquery,直到我更好地处理js)。我创建了一个画廊,在顶部有一系列缩略图,点击后会用艺术品,标题和描述填充下面的div。因为我想通过名称而不是数字(比如数组)来调用它们,以便它们可以互换,所以我将它们构建为一个包含所有组件的ID的div,然后我调用它通过该脚本的目标位置:
function changeDiv(id) {
var target = document.getElementById('generic');
var id = document.getElementById(id);
target.innerHTML = id.innerHTML;
}
在它看起来像身体:
<img src="images/thumbs/digital-art/thumb-space-oddity.jpg" id="thumb-space-odity" onclick="callDiv('space-oddity')"/>
...
<div class="gallery-frame" id="generic"></div>
目前这个工作,但因为我要对所有的div的地方,从我打电话已经在页脚中添加了一个php include,因此它加载了l AST但包含了所有我可能需要的图像:
<div style="display:none;">
<?php include("gallery.php"); ?>
</div>
...但是从我的理解,因为这仍然意味着该网页将加载所有将真正减慢页面的内容。所以我需要一个新的解决方案。
我的挑战: 首先,有没有一种方法可以在JavaScript中完成此操作?如果是这样,我很乐意这样做!
假设我不能,我已经开始研究AJAX,看看它是如何工作的,虽然它开始具有名义上的意义(对javascript仍然是新的,所以我只获得其中的一半),并且在w3schools.com和我认为的stackoverflow topic之间我对我需要做什么有一个总体的了解,但仍然无法实现。
问题: 基于上面的计算器评论我试图重新创建示例函数在我自己的例子,我已经将它设置为以下:
<script type="text/javascript">
function createXMLHttpRequest() {
try {
return new XMLHttpRequest();
}
catch (e)
{ alert('XMLHttpRequest not working'); }
try {
return new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{ alert('Msxml2.XMLHTT not working'); }
try {
return new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{ alert('Microsoft.XMLHTTP not working'); }
alert("XMLHttpRequest not supported");
return null;
}
function callDiv(id) {
var xmlHttpReq = createXMLHttpRequest();
var url = "gallery.asp?ID=" + id;
xmlHttpReq.open("GET", url, true);
xmlHttpReq.send();
}
</script>
从我读过,我离开第一部分就是设置函数(删除null和提示,因为我不需要它们)并尝试使callDiv函数与我之前使用的脚本运行相同。我也保存了作为.asp页面的gallery.php页面,但我应该把它留在PHP?
它是否必须是.ashx?
而且由于我不知道它被调用的文件,我不知道原始示例中使用的'REASON'是什么意思。我试过了?身份证思考我正在告诉它寻找一个身份证。那是错的,还是不必要的?
谢谢!
-Chris
欢迎堆栈溢出! – 2012-07-16 01:56:16
尝试格式化您的代码,并简要解释一下,但最重要的细节。 – 2012-07-16 01:56:47
一旦我审查它,我看到它没有保存。刚刚完成编辑 – user1311848 2012-07-16 01:58:00