Доступ к переменной javascript со страницы HTML в том же домене? - PullRequest
0 голосов
/ 29 августа 2009

Я пытаюсь улучшить внутреннее веб-приложение, которое мы используем. Я использую пользовательские фавелеты для автоматического заполнения определенных полей. Переменные javascript, которые мне нужны для заполнения формы, существуют внутри другой HTML-страницы. Можно ли получить доступ к VAR с другой HTML-страницы? Они будут встроены в элемент документа внешних страниц.

Я не хочу открывать всплывающее окно или перенаправлять страницу.

Это будет встроено в страницу в виде фавелета.

Спасибо!

Ответы [ 2 ]

1 голос
/ 29 августа 2009

Вы можете использовать iframe и обращаться к его переменным через объект frames в обработчике загрузки:

<script type="text/javascript">
    // This function will run as a callback when the iframe loads
    function frameLoad() {
       // Access the foo variable from external.html
       var foo = frames["externalFrame"].foo;
    }
    // Create an invisible iframe
    var iframe = document.createElement('iframe');
    iframe.width = 0;
    iframe.height = 0;
    iframe.style.display = "none";
    // Reference the page on the same domain with external variables on it
    iframe.src = "external.html"
    // Give it a name and ID so we can access it via the frames object
    iframe.id = "externalFrame";
    iframe.name = "externalFrame";
    // Set the load handler
    iframe.onload = frameLoad;
    // Append the iframe to the DOM
    document.body.appendChild(iframe);
</script>
0 голосов
/ 30 августа 2009

iFrame выглядит так, как будто он будет работать, однако у меня все еще есть некоторые проблемы с доступом к vars ... это сбрасывает текущее окно, отображающее [объект]?

Вот что я получил до сих пор ...

javascript:
var issueDoc = window.frames.editor.document;

function wwaLoad() {
    alert(issueDoc.control.getSortedIdList());
}

var listFrame = issueDoc.createElement('iframe');
listFrame.width = 0;
listFrame.height = 0;
listFrame.style.display = "none";
listFrame.src = "lp.jps?data=1";
listFrame.id = "WWALIST";
listFrame.name = "WWALIST";
listFrame.onload = wwaLoad;
issueDoc.body.appendChild(listFrame);
...