【问题标题】:Access functions of main page from innerhtml从innerhtml访问主页面功能
【发布时间】:2017-08-22 10:55:35
【问题描述】:

我有两个 html 页面。在主页中,当点击链接时,链接后面的 url 应该在一个小的内联窗口中打开。经过大量搜索后,我发现我可以使用 Innerhtml 将 url 加载到一个小 div 中(我还测试了 iframe 和 ajax,但它们在 chrome 中不起作用)。 1. 是否可以在innerhtml内部调用主页面中定义的函数? 2.在主页面和innerhtml页面内部我有相同的选项卡和同名对象,其中一个选项卡称为地图。当在 innerhtml 中单击一个按钮时,我希望在主页的地图中添加一个点,而不是在 innerhtml 本身的地图中。 以下是部分代码:

<script>
    function load_home(url) {
        document.getElementById("content").innerHTML = '<object type="text/html" 
        data = "' + url + '" > < /object>';
    }

</script>
<ul class="list-group  gn-resultview">
    <li class="list-group-item" data-ng-repeat="md in searchResults.records" gn-displayextent-onhover="" gn-zoomto-onclick gn-fix-mdlinks="">

        <div class="media-body">
            <div draggable id="content"> </div>

            <h4>
                <input gn-selection-md type="checkbox" ng-model="md['geonet:info'].selected" ng-change="change()" />
                <!-- Icon for types -->
                <a ng-href="#/metadata/{{md.getUuid()}}" onclick="load_home(this.href);return false;" title="{{md.title || md.defaultTitle}}">
                <i class="fa gn-icon-{{md.type[0]}}" title="{{md.type[0] | translate}}"/>
                {{(md.title || md.defaultTitle) | characters:80}}</a>
            </h4>
            <p class="text-justify" dd-text-collapse dd-text-collapse-max-length="350" dd-text-collapse-text="{{md.abstract || md.defaultAbstract}}"></p>
            <blockquote ng-if="md.getContacts().resource">{{::md.getContacts().resource}}</blockquote>
        </div>

        <div>
            <gn-links-btn></gn-links-btn>
        </div>
    </li>
</ul>

【问题讨论】:

  • 它是否适用于其他浏览器?
  • 尝试 ... document.getElementById("content").innerHTML=''; (确保您的网址是绝对的)
  • @Roy 那么使用这段代码我可以在 innerhtml 和主页之间进行链接吗?我编辑了描述以更好地阐明情况,您能再看看我的主要问题吗?
  • 此代码适用于所有浏览器,我的主要问题是我是否能够在 innerhtml 和主页之间进行链接。 @RameshRajendran
  • 我想你不知道什么是innerHTML,对吧?该函数实际上是在您的页面内创建 html 代码。所以,你没有两个 html,你只有一个具有动态内容的 HTML。所有页面中的功能都是一样的,在任何地方都可以调用。

标签: html angularjs innerhtml


【解决方案1】:

在innerhtml页面中,你可以像这样调用“test()”之类的主页面函数: 父.test()

举个例子: 在innerhtml url中:

<script>
function test1()
{

 parent.test();
}
</script>

在 innehtml 页面中:

 <button type="button"
                        class="btn btn-default btn-sm btn-block"
                        data-ng-show="hasAction(mainType)"
                        onclick="test1()" >

【讨论】:

  • 要将 html 页面添加到当前页面内的小 div 中,您可以使用:问题中提到的 load-home(url) 函数,并将 url 添加到 iframe 中,您可以使用答案在问题的cmets中提到。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多