Неверный аргумент в Internet Explorer - PullRequest
1 голос
/ 09 августа 2010

При просмотре сайта, над которым я работаю в любой версии IE, я получаю сообщение об ошибке, и единственное, что кажется загружаемым, - это фон. На самом деле не уверен, как исправить это, я даже не уверен, что означает ошибка.

Ошибка является недопустимым аргументом в строке 117.

Отлично работает в Firefox, Safari и Chrome.

Вот URL: http://streamlinehome.com/wordpress/

Ответы [ 4 ]

6 голосов
/ 10 августа 2010

117 указывает на файл jQuery.При отладке кода возникает ошибка, если (e) f [b] = d;

  • b - это «ширина»
  • d - это «NaNem»

Возвращаясь к CallStack, вы вызываете метод jQuery здесь

строка 63 в supersubs.js:

$ul.css('width',emWidth);

При просмотре нескольких строк вы видите комментарий о clientWidth, и этовероятно, там, где начинаются проблемы.:)

var emWidth = $ul.add($LIs).add($As).css({
    'float' : 'none',
    'width' : 'auto'
 })
 // this ul will now be shrink-wrapped to longest li due to position:absolute
 // so save its width as ems. Clientwidth is 2 times faster than .width() - thanks Dan Switzer
 .end().end()[0].clientWidth / fontsize;
 // add more width to ensure lines don't turn over at certain sizes in various browsers

Итак, посмотрим на это еще на строку ... end () [0] .clientWidth возвращает 0 и fontsize = 0, поэтому у вас 0/0, то есть NaN

3 голосов
/ 10 августа 2010

Я не могу дать полный ответ на ваш вопрос, но могу показать вам, почему вы получаете ошибку «Недопустимый аргумент».

Короче говоря, IE пытается установить ширину элемента равной"NaNem".Попытка сделать это приведет к тому, что IE сгенерирует ошибку «Недопустимый аргумент».

Но почему IE пытается установить ширину этого элемента на это бессмысленное значение?Эта ширина сначала появляется в функции в плагине supersubs.Следующий код пытается найти ширину символа тире в текущем шрифте ($$ содержит элемент <ul>):

var fontsize = $('<li id="menu-fontsize">&#8212;</li>').css({
    'padding' : 0,
    'position' : 'absolute',
    'top' : '-999em',
    'width' : 'auto'
}).appendTo($$).width(); //clientWidth is faster, but was incorrect here

Однако IE вычисляет fontsize как 0.

Позже используется значение этой переменной:

var emWidth = $ul.add($LIs).add($As).css({
    'float' : 'none',
    'width' : 'auto'
})
// this ul will now be shrink-wrapped to longest li due to position:absolute
// so save its width as ems. Clientwidth is 2 times faster than .width() - thanks Dan Switzer
.end().end()[0].clientWidth / fontsize;

Кажется, clientWidth здесь также 0, и это дает emWidth значение NaN.

Наконец, следующее добавляет единицу 'em' к emWidth (отсюда NaNem) и пытается установить ширину <ul> в "NaNem".IE не имеет этого и выдает ошибку «Неверный аргумент»:

emWidth += 'em';
// set ul to width in ems
$ul.css('width',emWidth);

Однако, боюсь, я не могу сказать, почему IE возвращает 0 для fontsize.Я рискнул бы предположить потенциальную ошибку в плагине supersubs - возможно, стоило бы спросить об этом на форумах jQuery, или, как предполагает сам плагин supersubs, jQuery Google Group?

0 голосов
/ 29 февраля 2012

Кажется, это проблема 32-разрядного Internet Explorer, работающая на 64-разрядной ОС. Попытка запустить IE 64 bit не происходит.

0 голосов
/ 09 августа 2010

Попробуйте поставить '' 'вокруг имени файла.

    #header {
        background-image: url(images/header-plain.png);
    }

Пример w3schools показывает цитируемое имя файла: http://www.w3schools.com/css/pr_background-image.asp

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