我正在開發一個項目的一部分,它改變了地址變化的事件。地址信息以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屬性中。我只是猜測這一點,但因爲我不能重新創建它。 –