Cha*_*cey 6 jquery internet-explorer append innerhtml getelementbyid
这个很长,
被召集来帮助客户修复他们当前项目的一些错误.需要修复的是一份工作清单页面.您有一个作业列表,单击一个,如果激活了JavaScript,则会调用AJAX来将作业的详细信息动态加载到现有元素中(DIV#emploi_details).如果未激活JS,则只需使用作业的详细信息重新加载页面(不太重要).
我跳上他们的实验室服务器在dev网站上工作.
基本上,IE7(起初)没有显示通过$().load()加载的内容.IE6与innerHTML一起工作顺利.请求已发送,我每次都会收到回复.我收到数据,我可以提醒()它并看到它,但实际的内容转储不起作用.Safari,Firefox,没问题.我正在加载信息的DIV#emploi_details元素有一个CSS显示:none; 在其样式表中,并在加载内容后显示(其他不那么重要的细节).
show_emploi = function(id, succ_id)
{
$('#emploi_details').fadeOut(800, function() {
var $$ = $(this);
$$.load('emploi_<?php echo $data['lang']; ?>.php', { job_details: 1, ajax: 1, id: id, succ: succ_id, random: (new Date().getTime()) }, function(data, status){
if (isIE6) document.getElementById('emploi_details').innerHTML = data;
$$.show();
});
$('#bgContent').fadeOut();
});
}
Run Code Online (Sandbox Code Playgroud)
起初我的印象可能是$().load()刚刚起作用,所以我改为$ .get()来更好地控制加载内容的操作.
$.get('emploi_<?php echo $data['lang']; ?>.php', { job_details: 1, ajax: 1, id: id, succ: succ_id, random: (new Date().getTime()) }, function(data, status){
$$.empty().append(data).show();
});
Run Code Online (Sandbox Code Playgroud)
这有效.在所有浏览器中包括IE6和IE7.没问题.很奇怪,但你知道它是否有效并且全面防范,不要问问题.
现在这里的狗屎很奇怪.我认为修复了这个错误并将解决方案应用到了实时网站上......它不起作用.IE就是不喜欢它.在尝试$ .ajax和所有其他类型的东西后,我最终在实时网站上使用这个:
$.get('emploi_<?php echo $data['lang']; ?>.php', { job_details: 1, ajax: 1, id: id, succ: succ_id, random: (new Date().getTime()) }, function(data, status){
document.getElementById('emploi_details').innerHTML = data;
$$.show();
});
Run Code Online (Sandbox Code Playgroud)
它适用于所有浏览器,因为没有像准系统JS那样完成任务.必要的是,此修复程序也适用于开发网站.
嵌入内容的功能有些不是针对所有浏览器(显然是服务器)的点击.
总而言之,我的问题是WTF问题.我无法理解为什么一方在一方工作而另一方无效,甚至为什么它在开始时从未正常工作($().load()).它显然没有不同的jQuery版本(1.2.6),因为这是我第一次验证框架版本的本能.
无论如何,有趣的神秘IMO.
希望Stackland的人有上帝给出的答案.
谢谢
小智 2
我已经解开了谜题!这是我的问题的一个有效示例。诀窍是在第一次成功后调用另一个 AJAX,这会以某种方式覆盖innerHTML 的问题。谢谢你们让我走上了正确的方向。
我希望这会对一些人有所帮助,因为到目前为止我还没有看到可行的解决方案。我还将为此联系 jQuery :P
$.ajax({
url:'modifyarticle.php',
type:'POST',
data:{
id:this.id,
article:'something',
mode:'single',
action:'delete'},
cache:false,
success:function(msg) {
alert(msg);$.ajax({
url:'getall.php',
type:'GET',
cache: false,
success: function(data) {
$('#output').html(data);
}
});
}});
Run Code Online (Sandbox Code Playgroud)
致敬