わかりました StackOverflow - これは奇妙なものです。
問題
したがって、ページの読み込み時にjsonを介してデータベースからテキストを取得する「ボタン」(実際にはjavascriptのonclickリスナーを持つdiv)があります。(アプリケーションを考えると理にかなっています)。IE < 9 はサポートしていません。
問題は、div 内のテキストが IE9 の新しいインスタンスに表示されないことです。ただし、開発者コンソールを開いて (何が問題なのかを把握しようとして) ページを更新すると、IE は何も問題がなかったかのように動作し、ボタンのテキストを正しく入力します。他のすべてのブラウザで動作します。
何。
コード
だからここに私がPHPで持っているものがあります:
<div class="dark-button notification-button" data-notification="NOTIF_A">
<span class="float-right">▶</span>
</div>
Javascript (Jquery 1.8.0 を使用):
$('document').ready(refreshNotificationButtons('.notification-button'));
function refreshNotificationButtons(buttons){
var buttons = typeof buttons != 'object' ? $('.notification-button') : buttons;
var allNotifications = {};
var buttonsCount = 0;
buttons.each(function(){
var button = $(this);
if(typeof button.attr('id') == 'undefined') button.attr('id', 'notif-button-' + buttonsCount);
buttonsCount ++;
if(typeof allNotifications[button.attr('data-notification')] == 'undefined'){
allNotifications[button.attr('data-notification')] = [button.attr('id')];
} else {
allNotifications[button.attr('data-notification')].push(button.attr('id'))
}
});
$.get(
'/notifications/get_notifications/' + $.map(allNotifications, function(x, abbr){return abbr}).join(','),
'',
function(data){
$(data).each(function(){
if (typeof allNotifications[this.Notification.NotificationAbbr] != 'undefined'){
console.log(this); //debug
buttonEl = $('#' + allNotifications[this.Notification.NotificationAbbr]);
if(this.Notifications_User.UserID != null) buttonEl.addClass('notification-button-remove');
buttonEl.attr('data-notification-id', this.Notification.Notifications_TableID);
buttonEl.append($('<span class="notification-button-signup-span">' + this.Notification.EnableText + '</span><span class="notification-button-remove-span">' + this.Notification.DisableText + '</span>'));
}
});
},
'json'
);
}
画像
開発コンソールを開く前のボタン:
開発コンソールを開いて更新した後のボタン:
結論
何か案は?ご覧になりたい場合は、さらにコードを投稿していただければ幸いです。前もって感謝します。