Как передать переменную js из одного файла HTML в другой? - PullRequest
1 голос
/ 16 января 2012

Моя проблема довольно проста, но, так как мне все еще не хватает навыков объединения js, php и html, я не смог найти решение этой проблемы. Проблема включает в себя 3 файла:

JS1.js

function foobar(foo){
...
}

здесь foo - это тот же foo, сгенерированный из файла HTML1.html

HTML1.html

...<?php
$something = Object->method();
$array = Object->anotherMethod($something);
echo "<script type=\"text/javascript\"> 
            var foo =" . json_encode($array) . ";
     </script> ";
?>
...

здесь я генерирую версию json_encode (d) моего массива php

HTML2.html

...<head>
<script type="text/JavaScript" src="js/JS1.js">
</head>
<body>
...
... onClick = \"foobar(foo)\">";
...
</body>

здесь, в основном, он мне нужен как параметр для запуска моей функции foobar js в файле JS1.js

Итак, мой вопрос, как передать foo из HTML1.html в HTML2.html ?

PS: очевидно, у меня есть 2 сплит html-файла, потому что они нужны мне обоим, и оба делают разные вещи, иначе проблема никогда бы не возникла :) просто чтобы прояснить ситуацию

Ответы [ 2 ]

1 голос
/ 16 января 2012

В этом случае используйте куки: В HTML1 после установки var foo установите его в cookie затем получить его из HTML2

HELPER CODE (http://www.w3schools.com) в js:

function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}

и

function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
  x=x.replace(/^\s+|\s+$/g,"");
  if (x==c_name)
    {
    return unescape(y);
    }
  }
}
0 голосов
/ 16 января 2012

есть 2 способа сделать это,

или

  • 2: [это очень плохая идея], чтобы JavaScript добавлял значение в конце всех ссылки для передачи значения
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...