我正在开发一个项目的一部分,它改变了地址变化的事件。地址信息以json数组的形式传递。SCRIPT5007。 IE7无法读取功能
不幸的是我的书面代码在IE7上不起作用。我已经设法用大多数可用的浏览器达到我的目标,但我无法弄清楚如何解决IE7上的这个问题。这里是我的代码片段:
<script type="text/javascript">
var remote_self_json_branches_text = <?=$remote_self_json_branches?>;
function selfOfficeChangeText(element)
{
console.log(remote_self_json_branches_text);
$(".self_del").css('display', 'none');
$("#self" + $(element).val()).css('display', 'block');
}
function change_delivery_office_selection_text (branch_id) {
var cityMap = '';
if(branch_id == 1){
$('.textBlockContainer #self .headerImage').removeClass('remote-self').addClass('self');
}
if(branch_id == 2){
$('.textBlockContainer #self .headerImage').addClass('remote-self').removeClass('self');
}
if(branch_id == 3){
$('.textBlockContainer #self .headerImage').addClass('remote-self').removeClass('self');
}
$(".cityBranch").css('display', 'none');
$("#city" + branch_id).css('display', 'block');
}
$(document).ready(function(){
var mapUrl = '<?= $deliveryOffices[1]['mapCoordinates']?>';
dom('delivery_office_title_text').innerHTML = remote_self_json_branches_text[1].v_title;
dom('delivery_office_address_text').innerHTML = '<a class="mapPopup" href="' + mapUrl + '">' + remote_self_json_branches_text[1].v_address + '</a>';
dom('delivery_office_work_time_text').innerHTML = remote_self_json_branches_text[1].v_work_time;
var mapUrl = '<?= $deliveryOffices[2]['mapCoordinates']?>';
dom('delivery_office_title1_text').innerHTML = remote_self_json_branches_text[2].v_title;
dom('delivery_office_address1_text').innerHTML = '<a class="mapPopup" href="' + mapUrl + '">' + remote_self_json_branches_text[2].v_address + '</a>';
dom('delivery_office_work_time1_text').innerHTML = remote_self_json_branches_text[2].v_work_time;
var mapUrl = '<?= $deliveryOffices[3]['mapCoordinates']?>';
dom('delivery_office_title2_text').innerHTML = remote_self_json_branches_text[3].v_title;
dom('delivery_office_address2_text').innerHTML = '<a class="mapPopup" href="' + mapUrl + '">' + remote_self_json_branches_text[3].v_address + '</a>';
dom('delivery_office_work_time2_text').innerHTML = remote_self_json_branches_text[3].v_work_time;
});
</script>
我在这里使用的功能:
<div class="win-xp selCont">
<select name="delivery_office" id="delivery_office_text" class="post_lt_branch" onchange="selfOfficeChangeText(this); change_delivery_office_selection_text(this.value);">
<option value="0">-- <?=t('Pasirinkite')?> --</option>
<?php foreach ($deliveryOffices as $key => $val) { ?>
<option address="<?=$val['city']?>, <?=$val['address']?>" value="<?=$val['id']?>" title="<?=$val['city']?>, <?=$val['address']?>" <?php echo ($val['id'] == 1) ? 'selected' : ''; ?>><?=$val['name']?></option>
<?php } ?>
</select>
</div>
我得到这个错误:
SCRIPT5007: The value of the property "selfOfficeChangeText" is null or undefined, not a Function object
我的猜测是,浏览器不有足够的时间来加载JavaScript。我不熟悉跨浏览器兼容性,所以任何帮助,将不胜感激。 在此先感谢。
我认为问题在于IE7 select元素没有value属性。该错误消息非常混乱....''selfOfficeChangeText“'不是一个属性! –
“selfOfficeChangeText”是一个函数,用于选择onchange属性。每个选项的值都是用php传递的id。 value =“<?= $ val ['id']?>”可能很难理解,因为我的代码不够整齐。但重点是,我错过了跨浏览器兼容性的一些细微差别。 –
这不是我的意思。我在说的也许是IE7选择元素节点没有值属性。这并不意味着没有选择一个值,它只是意味着IE7的dom引擎不会将值放在select元素的value属性中。我只是猜测这一点,但因为我不能重新创建它。 –