JavaScript работает в FireFox, но в IE8 выдает ошибку «Объект не поддерживает это свойство или метод» - PullRequest
0 голосов
/ 06 января 2012

Я использую следующий код (несколько сокращенно):

BehaviourAlert = {};
BehaviourAlert.URL = 'http://url/to/script.php';
BehaviourAlert.User_ID = UWA.Environment.user.id;
BehaviourAlert.User_Human;

BehaviourAlert.init = function() {
    Frog.API.get('users.getInfo',
    {
        'params': {'id': BehaviourAlert.User_ID },
        'onSuccess': BehaviourAlert.setUserHuman,
        'onError': function(err) { alert(err); }
    });

    $('input#submit').click(BehaviourAlert.processAlert);
}

BehaviourAlert.processAlert = function() {
    var Room = $('input#Room').val();
    if (Room.length < 1) {
        alert("Please let the Main Office know in which room you require assistance.");
        return false;
    }

    var Reason = $('textarea#Reason').val();
    var Urgency = $('select#Urgency').val();

    User_Human = encodeURI(BehaviourAlert.User_Human);
    Room = encodeURI(Room);
    Reason = encodeURI(Reason);

    var URL_Create_Alert = "?cmd=createAlert&User_ID=" + BehaviourAlert.User_ID + "&Room=" + Room + "&Reason=" + Reason + "&Urgency=" + Urgency + "&User_Human=" + User_Human; 

    UWA.Data.getText(BehaviourAlert.URL + URL_Create_Alert, BehaviourAlert.finalise);
    return false;
}

BehaviourAlert.finalise = function(data) {
    alert(data);
    window.location.reload(true);
}

/* -- WIDGET ONLOAD */
widget.onLoad = function(){
    BehaviourAlert.init();
}

Есть дополнительный код, но IE не выдает ошибок, пока я не нажму кнопку ввода с идентификатором "submit".

Код работает как и ожидалось в FireFox - когда нажата кнопка отправки, JS отправляет запрос в мой PHP-скрипт, который запрашивает базу данных и отправляет простой ответ в JS, чтобы сказать, что все работает правильно.Кнопка оповещения появляется в FireFox с этим сообщением.

Однако в Internet Explorer я получаю следующее:

Webpage error details

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)
Timestamp: Fri, 6 Jan 2012 10:24:37 UTC


Message: Object doesn't support this property or method
Line: 37
Char: 13
Code: 0
URI: http://my.frog.server/uwa/js/compiler.php?url=%2Fuser%2F74%2F170980.html&v=6b3fdcf8766f759b62bcbd2c7ba7b2b9

К сожалению, этот «compiler.php» не имеет ко мне никакого отношения- Я разрабатываю виджет для виртуальной учебной среды Frog.Когда у меня раньше была эта ошибка, это было связано с написанным мной сценарием, но «строка 37» на «compiler.php» ничего не говорит мне о том, где проблема находится в моих файлах.

Я использую jQuery, и UWA в моем сценарии полностью связан с кодом виджета, разработанным специально для VLE.

FireBug вообще не возвращает ошибок или предупреждений.

Заранее спасибо,

Ответы [ 2 ]

0 голосов
/ 07 января 2012

Снова отвечаю на мой вопрос, д'О.

User_Human = encodeURI(BehaviourAlert.User_Human);
Room = encodeURI(Room);
Reason = encodeURI(Reason);

Очевидно, что нужно инициализировать переменные для IE.

var User_Human = encodeURI(BehaviourAlert.User_Human);
var Room = encodeURI(Room);
var Reason = encodeURI(Reason);
0 голосов
/ 06 января 2012

Javascript чувствителен к регистру, поэтому атрибут обработчика события load называется onload, а не onLoad

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...