0

我正在尝试增强我们使用的内部 Web 应用程序。我正在使用自定义 favelet 来自动填充某些字段。我需要填充表单的 javascript 变量存在于内部的不同 HTML 页面上。是否可以从另一个 html 页面访问变量?它们将嵌入到外部页面文档元素中。

我不想打开弹出窗口或重定向页面。

这将作为 favelet 嵌入到页面中。

谢谢!

4

2 回答 2

1

您可以使用 iframe 并通过framesonload 处理程序中的对象访问其变量:

<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>
于 2009-08-29T08:02:23.417 回答
0

iFrame 看起来可以工作,但是在访问变量方面我仍然遇到一些问题......这会刷新显示 [object] 的当前窗口吗?

这是我到目前为止所得到的......

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);
于 2009-08-30T00:13:47.413 回答