#javascript #jquery #html #popup
#javascript #jquery #HTML #всплывающее
Вопрос:
Итак, у меня есть основной html-документ, commit_PNG.html
и в этом документе у меня есть две простые строковые переменные, которые я хочу использовать в другом вызываемом html-документе popup.html
. На данный момент у меня есть такая функция:
<script type="text/javascript">
function PopUpFenster(id) {
myWindow = window.open('popup.html?id=' id, 'Info window', 'height=350, width=800');
}
</script>
Во втором html-документе я хочу работать со строковыми переменными. Мне нужно решение, которое работает примерно так в popup.html
:
var string1 = "http://www.test.com/" commit_PNG.stringvariable1;
var string2 = "http://www.test.com/" commit_PNG.stringvariable2;
Я не уверен, но мне нужно либо брать их напрямую, commit_PNG.html
либо анализировать их с window.open()
помощью метода.
Комментарии:
1. Итак, вы хотите передать string1 и string2 во всплывающее окно?
2. Не непосредственно во всплывающем окне. Я хочу создать с их помощью динамический URL-адрес во втором html-документе. Позже с этим URL я получаю ресурсы, которые будут отображаться в этом всплывающем окне.
Ответ №1:
Используйте хэш-часть для передачи объекта JSON следующим образом:
В commit_PNG.html
:
var myStrings = {
str1:"my first str",
str2:"my second str"
}
function PopUpFenster(id) {
var myUrl = "popup.html?id=" id "#" encodeURIComponent(JSON.stringify(myStrings));
window.open(myUrl , "Info window", "height=350, width=800");
}
Затем в вашем popup.html
просто сделайте:
var myData = JSON.parse(decodeURIComponent(window.location.hash.substring(1)));
alert(myData.str1 " " myData.str2);
Это отличный способ передать дату в URL. Вы можете передать объект JSON, а использование stringify с encodeURIComponent делает его безопасной строкой для URL.
Используя хэш-часть, убедитесь, что она не отправляется на сервер.
Комментарии:
1. Сработало отлично. Я немного отредактировал, как пропущенный
=
. Спасибо за быстрый ответ!
Ответ №2:
commit_PNG.html
<script type="text/javascript">
function getVariables(){
return {
stringvariable1: 'v1',
stringvariable2: 'v2'
};
}
function PopUpFenster(id) {
myWindow = window.open('popup.html?id=' id, 'Info window', 'height=350, width=800');
}
</script>
popup.html
<script type="text/javascript">
var parentWindow = window.opener;
var variables = parentWindow.getVariables();
var string1 = "http://www.test.com/" variables.stringvariable1;
var string2 = "http://www.test.com/" variables.stringvariable2;
</script>