Javascript ссылки, сделанные php в Firefox - PullRequest
0 голосов
/ 02 декабря 2009

Я работаю над сценарием, и он отлично работает в IE и Chrome, но ссылки не работают в Firefox.

В основном я использую php для запроса базы данных и генерации некоторых ссылок внутри страницы.

Пример соответствующего кода ссылки:

<TD class="bodycopyblue"
    onmouseover="this.style.background='#FFFF80';this.style.cursor='pointer'"
    onmouseout="this.style.background='#FFFFFF'"
    onclick="getAccountDetails(<?php print $accountinfo['audio_account_id']; ?>)"
>view CDRs</TD>

Код onmouseover / out работает нормально. Кажется, онклика нет.

Функция, которую вызывает ссылка:

function getAccountDetails(account_id) {

    accountform.aid.value=account_id;
    accountform.submit();
}

Который отправляет форму:

<FORM id="accountform"
    action="accountdetails.php?month=<?php print $cdate['mon']; ?>&year=<?php print $cdate['year']; ?>"
    method="post">
<INPUT id="aid" name="aid" type="hidden" value=0>
</FORM>

Форма не отображается правильно ... но это простая форма с одним скрытым полем. Опубликовано по ссылке, сгенерированной каким-то php. Я установил firebug, но либо из-за незнания его работы, либо из-за того, что ничего не случилось, он не сообщает об ошибках.

Ответы [ 4 ]

0 голосов
/ 03 декабря 2009
function getAccountDetails(account_id) {
    accountform.aid.value=account_id;
    accountform.submit();
}

Что такое accountform? Если вы не сделали var accountform= ... нигде, вы не получите никакой переменной с таким именем, кроме как в IE, который ошибочно создает переменные для именованных элементов в window scope.

Не полагайтесь на это, установите accountform явно:

function getAccountDetails(account_id) {
    var accountform= document.getElementById('accountform');
    accountform.elements.aid.value=account_id;
    accountform.submit();
}
0 голосов
/ 03 декабря 2009

попробуй

function getAccountDetails(account_id) {

        document.getElementById('aid').value=account_id;
        accountform.submit();
}
0 голосов
/ 03 декабря 2009

Firebug 1.4 и FF 3.5 работают немного хитро, вам нужно открыть консоль Firebug (F12 или щелкнуть значок Firebug в правом нижнем углу) и затем перезагрузить страницу с открытой консолью. Нажмите на вкладку «Консоль», как только откроется окно Firebug, возможно, оно покажет вам ошибку.

Мое единственное другое предложение - добавить точку с запятой после вашего заявления JS.

onclick="getAccountDetails(<?php print $accountinfo['audio_account_id']; ?>);"

Firefox обычно очень простителен - странно, что он работает в других браузерах, а не в FF. В качестве окончательного теста уберите события mouseover и mouseout и просто оставьте onclick и посмотрите, работает ли он сам.

0 голосов
/ 03 декабря 2009

Каков полученный HTML-код? Сделайте «просмотр исходного кода» в Firefox и вставьте свой код в вопрос. Скорее всего, вы увидите искаженный HTML.

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