0

我们在父页面中使用 iframe,它会被其他页面动态替换。

传播已加载到父级中。是否有某种类型的插件允许我访问从 iframe 页面加载到父级中的扩展核心,而不包括spread(language="JavaScript" src="http://cdn.wijmo.com/spreadjs/gcspread.sheets.all.8.40.20151.0.min.js")在多个子 (iframe) 页面中?Jquery 加载正常。

带有引用的主页 iframe

<iframe name="mainWindow" src="includes/View.asp frameborder="0" />
<link href="http://cdn.wijmo.com/spreadjs/gcspread.sheets.8.40.20151.0.css" rel="stylesheet" type="text/css" />
<script src="http://code.jquery.com/jquery-1.8.2.min.js" type="text/javascript"></script>
<script type="text/javascript" src="http://cdn.wijmo.com/spreadjs/gcspread.sheets.all.8.40.20151.0.min.js"></script>

我们只是在运行时替换 iframe 源。我使用以下代码,但没有初始化传播有什么建议吗?

<script type="text/javascript">
        var parentWindow = window.parent;// This refers to parent's window object
        if (parentWindow && parentWindow.jQuery) { // Check to see if parentWindow and parentWindow.jQuery is truly
            window.jQuery = parentWindow.jQuery;
            window.$ = parentWindow.jQuery;
        }
        else {
            var jScript = document.createElement('script');
            jScript.setAttribute("type", "text/javascript");
            jScript.setAttribute("src", "http://code.jquery.com/jquery-1.8.2.min.js"); // load jQuery here
        }

        if (parentWindow && parentWindow.wijmo && parentWindow.GcSpread) { // Check to see if parentWindow and parentWindow.wijmo and parentWindow.GcSpread is truly
            window.GcSpread = parentWindow.GcSpread;
            window.wijmo = parentWindow.wijmo;
        }
        else {
            var jScript = document.createElement('script');
            jScript.setAttribute("type", "text/javascript");
            jScript.setAttribute("src", "http://cdn.wijmo.com/spreadjs/gcspread.sheets.all.8.40.20151.0.min.js"); // load gcspread here

        }

        $(document).ready(function () {
            var test = window;
            alert("JQuery loaded");
            var spread = new GcSpread.Sheets.Spread(document.getElementById("ss"));
            var spreadNS = GcSpread.Sheets;
            spread.setSheetCount(3);

            spread.bind(spreadNS.Events.ActiveSheetChanged, function (e, args) {
                $("#activeSheetIndex").val(spread.getActiveSheetIndex());
            });

            $("#btnAddSheet").click(function () {
                spread.addSheet(spread.getSheetCount());
            });

            $("#btnRemoveSheet").click(function () {
                var activeIndex = spread.getActiveSheetIndex();
                if (activeIndex >= 0) {
                    spread.removeSheet(activeIndex);
                }
            });

            $("#btnClearSheets").click(function () {
                spread.clearSheets();
            });

            $("#btnSetActiveSheetIndex").click(function () {
                var index = $("#activeSheetIndex").val();
                if (!isNaN(index)) {
                    index = parseInt(index);
                    if (0 <= index && index < spread.getSheetCount()) {
                        spread.setActiveSheetIndex(index);
                    }
                }
            });
        });
    </script>
<div class="sample-turtorial">
        <div id="ss" style="width:100%; height:580px;border: 1px solid gray;"></div>
        <div class="demo-options">
            <div class="option-row">
                <input type="button" style="width: 100px" value="Add Sheet" id="btnAddSheet" />
                <input type="button" style="width: 100px" value="Remove Sheet" id="btnRemoveSheet" />
                <input type="button" style="width: 100px" value="Clear Sheets" id="btnClearSheets" />
            </div>
            <div class="option-row">
                <label>ActiveSheetIndex:</label>
                <input type="text" id="activeSheetIndex" value="0" />
                <input type="button" id="btnSetActiveSheetIndex" value="Set" />
            </div>
        </div>

        
    </div>

4

1 回答 1

0

我不认为您正在尝试什么工作,如果没有对库(SpreadJS)的引用,代码将如何执行。

您能否解释一下您的用例可能是什么,也许我们可以帮助您找到一种不同的方式来完成您所需要的。

于 2015-11-01T23:02:56.723 回答