Я хотел бы открывать окно, когда я нажимаю кнопку и изменяю html и css страницы, которая будет открыта. Как я могу это сделать?
Я работаю над проектом Symfony и просто хочу написать в абзаце окна, которое будет открыто. Для этого я попробовал:
$( "#tom" ).click(function() {
var wind = window.open("{{ path('AjoutFournisseur') }}", "Ajouter un fournisseur", "width=520,height=1080");
wind.document.getElementById("can").innerHTML='TEST';
});
И у меня такая ошибка:
Uncaught TypeError: Cannot set property 'innerHTML' of null at HTMLSpanElement. (add-volet:113) at HTMLSpanElement.dispatch (jquery.min.js:2) at HTMLSpanElement.y.handle (jquery.min.js:2)
Я работаю над проектом Symfony, и я просто хочу написать в абзаце окна, которое будет открыто. Поэтому для этого я использую: $ ("#tom") .click (function () {var wind = window.open ("{{path ('AjoutFournisseur')}}", "Ajouter un fournisseur", "width = 520) , height = 1080 "); wind.document.getElementById (" can "). innerHTML = 'TEST';}); И у меня есть эта ошибка: Uncaught TypeError: не удается установить свойство innerHTML со значением null в HTMLSpanElement. <anonymous> (add-volet: 113) в HTMLSpanElement.dispatch (jquery.min.js: 2) в HTMLSpanElement.y.handle ( jquery.min.js: 2)
Добро пожаловать в Stack Overflow! Я переместил код из вашего комментария в вопрос; в будущем, пожалуйста, добавляйте информацию, редактируя сам вопрос, а не размещая его в комментариях; неформатированный код в комментариях может быть трудночитаемым, и его легко пропустить другим пользователям)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если всплывающее окно находится не в том же домене, что и родительское окно, это будет невозможно без сотрудничества с другим сайтом (будут применяться правила CORS и политика того же происхождения).
Если обе страницы находятся в одном домене, вам нужно сделать изменение, чтобы дождаться завершения загрузки всплывающего окна, прежде чем пытаться его изменить; прямо сейчас вы открываете окно, а затем сразу пытаетесь изменить его содержимое до того, как сетевой запрос сможет их вернуть.
Я не могу продемонстрировать это в действующем фрагменте кода переполнения стека, потому что он не разрешает всплывающие окна, но это будет выглядеть так:
$('#tom').on("click", function() {
let thePopup = window.open("url_of_popup_window.html");
thePopup.onload = function(e) {
thePopup.document.getElementById("can").innerHTML = 'TEST';
// Or, since you're already using jQuery, use this equivalent to the above line:
// $('#can', e.target).html('TEST'); // e.target is the popup document here
// (this would be usable even if jQuery is not in the popup window, because this script runs in the parent)
}
});
Не могли бы вы дать более подробное описание, чем «это не сработало»? Это дало вам ошибку? Что на самом деле произошло?
getElementbYIdне действителен, кстати. Это опечатка в вашем вопросе?