Перенос переменной из одного html-документа в другой с помощью всплывающего окна в Javascript

#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>