Показать Hide div во всплывающем окне Chrome Extension с помощью jQuery - PullRequest
1 голос
/ 16 января 2010

Я пытался заставить параметр показывать и скрывать (возможно, переключать) в моем всплывающем окне действий браузера, но безуспешно.Код ниже - это тело моего всплывающего окна

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="popup.js"></script>
<div class="show">
    <a href="#" class="showcontent">Show</a>
    <a href="#" class="hidecontent">Hide</a>
    <div class="somecontent">
        <p>some content<br />
            <a href="#">Link</a><br />
        </p>
    </div>
</div>

Файл popup.js содержит, среди прочего:

$(document).ready(function(){
    $(".somecontent").hide();
    $(".showcontent").click(function(){
        $(".somecontent").show();
    });

    $(".hidecontent").click(function(){
        $(".somecontent").hide();
    });
});

Я считаю, что проблема в том, что у Chrome API возникают проблемыс моим файлом popup.js.Тело появляется в моем всплывающем окне, но действия «Показать» и «Скрыть» не работают.Любые идеи, как заставить это работать, а если нет, другой способ получить тот же результат (например: переключение при нажатии)?

РЕДАКТИРОВАТЬ: Из консоли javascript, ошибка яполучение этой ошибки:

Uncaught TypeError: Невозможно вызвать метод 'ready' со значением NULL

Который указывает на строку приведенного выше кода с помощью функции ready.

Ответы [ 6 ]

11 голосов
/ 10 июня 2011

Также возможно, что jQuery конфликтует с чем-то другим на вашей странице из-за использования функции $(). (Я сам столкнулся с этой проблемой.) Если это так, то изменение вызовов $() на jQuery() должно решить проблему.

0 голосов
/ 24 марта 2011

Поскольку кажется, что на этот старый вопрос до сих пор не дан ответ, я решил попытать счастья.

Вы пытались загрузить jquery.js снова (файл может быть поврежден). Кроме того, если вы все еще заинтересованы в ее решении, можете ли вы опубликовать свой src где-нибудь, чтобы мы могли прочитать (например, http://jsfiddle.net/)

0 голосов
/ 25 июня 2010

Ваш код работал нормально для меня. Как уже говорилось, ошибка, которую вы получаете, звучит так, как будто файл jquery.js не найден / не загружен. Это длинный путь, но если вы работаете в Windows, проверьте свойства файла jquery.js и посмотрите, есть ли кнопка Unblock прямо на первой вкладке. Нажмите на нее.

0 голосов
/ 20 января 2010

Эта ошибка означает, что jQuery загружается неправильно. Убедитесь, что он называется jquery.js и хранится в корневой папке.

0 голосов
/ 16 января 2010

Поскольку вы не возвращаете false из своих обработчиков кликов и не звоните preventDefault(), страница будет перезагружена при нажатии, а .somecontent снова будет скрыт. Измените свой JS на следующий:

$(document).ready(function(){
    $(".somecontent").hide();
    $(".showcontent").click(function(){
        $(".somecontent").show(); return false;
    });

    $(".hidecontent").click(function(){
        $(".somecontent").hide(); return false;
    });
});
0 голосов
/ 16 января 2010

возможно popup.js вызывает ошибку разбора / exec?попробуйте узнать, может ли Chrome печатать ошибки с помощью:

Консоль JavaScript: щелкните значок меню «Страница» и выберите «Разработчик - Консоль JavaScript».Отсюда вы сможете просматривать ошибки при выполнении JavaScript и вводить дополнительные команды JavaScript для выполнения.

Отладчик JavaScript: доступен как значок меню страницы 0 Разработчик - Отладка JavaScript, отладчик предоставляет командную строкуиз которого вы можете установить точки останова, обратный след и многое другое.Чтобы начать, введите help в командной строке отладчика.

from здесь

чтобы вы могли получить ошибку, если jquery не загружен:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>

<script>alert($(document))</script>

должен появиться объект ...

...