Я не уверен, что моя недавняя встреча такая же, как и у вас.
Я использую внешний javascript-файл, загруженный в раздел html-head, как пользовательский скрипт для проверки.
Это мой код, который генерирует ошибку в IE, но это не генерирует ошибку в Firefox.
function loginCheck()
{
var username = dojo.byId("usernameBox").value;
var password = dojo.byId("passwordBox").value;
var loginForm = dijit.byId("loginDialog");
var mainPage = dijit.byId("entirePage");
var menuUrl = "";
if(username != 'admin' && username != 'user'){
alert('Incorrect username');
} else {
if(password != '1234') {
alert('Incorrect password');
} else {
loginForm.hide();
dojo.style(mainPage.domNode, {visibility:"visible"});
dojo.doc.title = dojo.doc.title + " : Signed in as [" + username + "]";
if(username == 'user'){
menuUrl = "../data/userMenu.json";
} else if(username == 'admin') {
menuUrl = "../data/adminMenu.json";
}
var treeStore = new dojo.data.ItemFileReadStore({
url : menuUrl
});
var treeModel = new dijit.tree.ForestStoreModel({
store : treeStore,
query : {
"type" : "category"
},
childrenAttrs : ["children"]
});
var naviTree = new dijit.Tree({
model : treeModel,
showRoot : false,
autoExpand : true
}, "naviPane");
dojo.connect(naviTree, "onClick", function(item){
var targetPage = item.link;
var targetPane = dijit.byId("centerPane");
console.log(targetPage);
**targetPane.attr('href',targetPage);**
console.log("redirect success.");
});
}
}
В строке **. IE возвращает эту ошибку.
Сведения об ошибке веб-страницы
Пользовательский агент: Mozilla / 4.0 (совместимый; MSIE 8.0; Windows NT 6.1; Trident / 4.0; SLCC2; .NET> CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; ПК Media Center 6.0; InfoPath.2;> Планшетный ПК 2.0; .NET4.0C; .NET4.0E; AskTB5.6)
Отметка времени: вторник, 19 октября 2010 г., 08:24:35 UTC
Сообщение: объект не поддерживает это свойство или метод
Линия: 49
Чар: 21
Код: 0
URI: http://localhost:8080/TestESarabun/script/loginCheck.js
После того, как я проследил в библиотеку dojo и остановился на файле dojo / _base / xhr.js с этим фрагментом кода.
dojo._ioAddQueryToUrl = function (/ * dojo .__ IoCallbackArgs * / ioArgs) {
// summary: Добавляет параметры запроса, обнаруженные конструкцией отложенного ввода-вывода в URL.
// Используйте это только для операций, которые по сути являются операциями типа GET.
если (ioArgs.query.length) {
ioArgs.url + = (ioArgs.url.indexOf ("?") == -1? "?": "&") + ioArgs.query;
ioArgs.query = null;
}
}
Мое грубое решение - просто закомментировать строку «indexOf», а затем мое веб-приложение запустится без ошибок.
Во всяком случае, я не уверен, что эта линия собирается делать?