Я хочу, чтобы мой бэк-офис (редактирование: страница, на которой я изменял свой сайт) открывался во всплывающем окне (Редактировать: особый тип всплывающей рекламы, созданный с использованием динамического HTML, JavaScript и аналогичных технологий веб-браузера. Потому что они не прокручиваются вместе с веб-страницей, они кажутся «парящими» над страницей, обычно закрывая содержимое.) но когда я щелкаю до того, как страница полностью загружена, она открывается на странице _blank. Это проблема.
Основываясь на старых потоках Stackoverflow (отредактируйте: например, Как включить / отключить кнопку html на основе сценария?), я пришел к идее скрыть ссылку на бэк-офис и показать ее, когда документ будет готов, используя Javascript .removeClass в конце моего всплывающего скрипта (он называется Clearbox, если нужно знать). Теоретически это должно предотвратить появление ссылки на бэк-офис до того, как скрипт всплывающего окна будет готов для правильной загрузки. Я, наверное, ошибаюсь, потому что панель инструментов вообще не отображается.
$(window).load(function(){ $("div#outils").removeClass('d-none'); });
// At the end of clearbox.js
В чем моя ошибка? class = "d-none" - это стандарт Bootstrap 4, который инициализирует div как не отображаемый и смешивается с другими классами, которые мне нужны в div # outils. Я открыт для любых предложений, если вы знаете способ получше.
Вы подтвердили, что мероприятие запущено? как $ (window) .load (function () {console.info ("Привет");});
Извините, но мой вопрос кажется довольно ясным. Поскольку всплывающее окно - это веб-стандарт, я не ожидал, что мне придется его объяснять ... (Википедия: особый тип всплывающих окон, созданный с использованием динамического HTML, JavaScript и аналогичных технологий веб-браузера. Потому что они не прокручиваются вместе с веб-страницей, они кажутся «парящими» над страницей, обычно закрывая содержимое). По сути, у меня есть панель инструментов, при нажатии на которую открывается мой бэк-офис во всплывающем окне. Упоминание Clearbox делается только в том случае, если вам нужно знать, какой скрипт я использую. В противном случае вы можете проигнорировать эту информацию.
@EponymeWeb: ваша строка возвращает Uncaught TypeError: $ (...). Load - это не функция, я должен признать, что я не очень хорошо разбираюсь в Javascript
Ваш вопрос совсем не ясен - если вы прочитаете этот вопрос без какой-либо идеи или предыстории, вы не поймете этого - какое отношение имеет удаление класса display none к загрузке ссылки в пустом окне? Также дайте ссылку на старые темы, чтобы мы могли понять, о чем вы говорите. И наконец, создайте минимальный воспроизводимый пример
@Pete В том-то и дело, он не должен открываться на пустой странице. Возможно, я забыл фразу, чтобы прояснить это: «На основе старых веток Stackoverflow я пришел к идее СКРЫТЬ ПАНЕЛЬ ИНСТРУМЕНТОВ И ПОКАЗАТЬ ЕЕ, КОГДА ДОКУМЕНТ ГОТОВ, используя Javascript. Сообщение отредактировано.
В том-то и дело, что, исходя из вашего кода, он должен работать - поэтому невозможно ответить на ваш вопрос: Вопросы, требующие помощи по отладке («почему этот код не работает?») Должны включать в себя желаемое поведение, конкретную проблему или ошибку и кратчайший код, необходимый для их воспроизведения в самом вопросе. Вопросы без четкой постановки проблемы не будут полезны другим читателям.
Хорошо, сделали ускорение, и кажется, что $(window).load
не работает в jquery 3 - вам нужно используйте $(window).on('load'
вместо Посмотрите, как легко это было отлаживать на рабочем примере
@Pete Это работает как чам :) Спасибо и извините, если мой пост был недостаточно ясен. Я изо всех сил стараюсь соблюдать правила, но это не всегда легко понять
Всегда хорошо, если вы можете включить рабочий пример - он действительно проясняет большую часть недоразумений, а создание примера часто помогает вам найти проблему - много раз я хожу, чтобы задать вопрос, и пока я делаю отрывок , Я найду причину проблемы
Я учусь каждый день :) Как я могу отметить ваш ответ как выбранное мной решение?
Используйте функцию jQuery $(document).ready()
. Добавьте событие щелчка на панель инструментов после загрузки страницы.
$(document).ready(function(){
$(selector).click();
})
Это могло бы помочь, но могу ли я вместо этого заменить действие Click действием Display? Боюсь, моя импульсивная команда просто сочтет это ошибкой, если не сможет щелкнуть :-D
Да, вы можете добавить все, что хотите, в «готовую» -функцию.
Кажется, он работает, но панель инструментов элемента по-прежнему появляется слишком быстро. Я использовал его таким образом на главной странице: <script> $ (document) .ready (function () {$ ('div # outils'). RemoveClass ('d-none');}); </script>
Если вы установите панель инструментов, например, с помощью css, на «display: none;» а в вашей готовой функции через jQuery $ (selector) .show () он появляется после загрузки.
Я вообще не могу следить за тобой. Что ты пытаешься сделать? Вы говорите о множестве разных вещей, как будто ожидаете, что мы узнаем, что это такое. Что такое «всплывающее окно»? Что такое Clearbox? Какая панель инструментов? Это не JavaScript, это jQuery, так что ваш вопрос по jQuery? Какой у вас «бэк-офис»?