2013-04-04 3 views
0

Я просмотрел довольно много ответов и других мест в Интернете, но я не нашел никого, кто испытывает ошибку так же, как и я.Javascript - Script5002 - Функция Ожидается при объявлении переменной

Мой браузер только что обновлен до IE10, и это принесло это нашему вниманию. Если я запускаю режим совместимости, функция работает нормально. Если я не в режиме совместимости, я получаю ошибку отладчика IE SCRIPT5002 - Ожидаемая ошибка функции.

Я отметил место, где я получил ошибку с ==>. Если я выберу эту переменную и заменим переменную на document.frames ... она затем ссылается на эту строку как на проблему. Любая помощь будет оценена по достоинству.

Я унаследовал этот код от предыдущего сотрудника и работал только с javascript примерно на 3 месяца. Вот код:

function FncSaveClient(){ 
//Submit Primary Client form 
//Verify Data 
==> var CntSumFrm = document.frames('IFrameSummary').document.all.item('DefaultFrm'); 
if (CntSumFrm.fireEvent('onsubmit') == true){ 
    CntSumFrm.submit(); 
} 
//If Edit Mode Submit Subforms 
var IntAcctNum = CntSumFrm.TxtAcctNum.value 
if (IntAcctNum != 0){ 
    //Locations Subform 
    var CntLocFrm = document.frames('IFrameLocations').document.all.item('DefaultFrm'); 
    if (CntLocFrm.fireEvent('onsubmit') == true){ 
      CntLocFrm.submit(); 
     } 
    //Contacts Subform 
    var CntContactTbl = document.frames('IFrameContacts').document.all.item('TblContactSummary') 
if (CntContactTbl.rows.length-3 == 0){ 
     alert('You must have at least one contact per client.'); 
    document.all.item('BtnSubTblClientContacts').style.color='red'; 
    } 
    //Classification Subform 
    var CntClassFrm = document.frames('IFrameMarketing').document.frames('IFrameClassification').document.all.item('DefaultFrm'); 
    if (CntClassFrm.fireEvent('onsubmit') == true){ 
     CntClassFrm.submit(); 
     } 
    //Save Client Admin 
    var CntAdminFrm = document.frames('IFrameAdmin').document.all.item('DefaultFrm'); 
    if (CntAdminFrm.fireEvent('onsubmit') == true){ 
    CntAdminFrm.submit(); 
} 
else 
{ 
    document.all.item('BtnSubTblSalesRel').style.color='red'; 
} 
} 

if(CntSumFrm.TxtDeleted.value == 1) 
    { 
    window.parent.location.href = '/Accounts/'; 
    } 
} 
+0

Какая ошибка вы получаете? IE10 совсем другой, и придерживается более строгого использования JavaScript. – Garrett

+0

Если у меня нет отладки, сценарий не будет отправлять формы, и страница ничего не делает. Если отладка включена, в ней говорится «Ожидаемая функция» (ошибка отладки IE - SCRIPT5002 - функция «Ожидаемая функция»), и она выделяет «var CntSumFrm = document.frames (« IFrameSummary »). Document.all.item ('DefaultFrm'); –

ответ

1

Этот код полон древней IE-конкретный код, который, вероятно, не имеет больше даже IE, если в режиме совместимости. Вы должны смотреть на замену вещи, как:

  • document.frames
  • document.all
  • .items()

Я считаю, что ошибка происходит потому, что frames или item (возможно оба) не является функцией, когда IE следует за Стандарты JS.

0

У меня была аналогичная проблема с Java Script, которую я написал еще в 2005 году. Внешний пользователь, использующий IE10, который мы все еще поддерживаем в IE8, не может заставить работу работать должным образом. По-видимому, document.all устарел и доступен только в режиме совместимости. Я удалил чек, который у меня был для IE, и теперь он использует document.getElementById, который у меня уже был для других браузеров, и он работает даже при отключенном режиме совместимости.

Смежные вопросы