首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Iframe在js函数调用上加载父页面

问Iframe在js函数调用上加载父页面
EN

Stack Overflow用户
提问于 2017-08-18 04:08:06
回答 1查看 103关注 0票数 0

我正在尝试让iframe在我的网站上运行js。

iframe页面如下所示(出于相关性考虑,省略了一些php ):

代码语言:javascript
复制
    <?php
        function createModeratorFormPart($moderator_email = null, $modNumber = 5){
            echo "<script src=\"frontend.js\"></script>"; //implement adding moderators dynamically and such
            echo "<fieldset id=\"moderator\">";
            echo "<button onClick=\"addModerator()\">Add a moderator</button>";
            if($moderator_email == null){ //if we have no moderators set
                echo "<div>";
                echo "<input class=\"addCommunityInput\" type=\"email\" name=\"moderator[$i]\" placeholder=\"Moderator Email\">";
                echo "<button onClick=\"dropModerator(this)\">-</button>";
                echo "</div>";
            }else{
                for($i = 0; $i < count($moderator_email); $i++){
                    echo "<div>";
                    echo "<input class=\"addCommunityInput\" type=\"email\" name=\"moderator_email[$i]\" placeholder=\"Moderator Email\" value=\"" . $moderator_email[$i] . "/>";   
                    echo "<button onClick=\"dropModerator(this)\">-</button>";
                    echo "</div>";  
                }   
            }
            echo "</fieldset>";
        }

?>
  <html>
    <head>
    <link rel="stylesheet" href="/web/addOfferingStyles.css" type="text/css" />
    <script src="/web/frontend.js"></script>
    </head>
    <body>
    <?php if(isset($_GET['success'])){ 
        echo '<p>Offering successfully created</p>';
    }else{
        echo "<p>$retCode</p>";
    }
    ?>
     <h1 id="addCompOff">New Community Period</h1>
    <form method="post" id="addCommunityForm" action="<?php echo 'https://theprepapp.com'. $_SERVER['PHP_SELF'];?>">
        <input type="hidden" name="formSubmit" value="1"></input>
            <input class="addCommunityInput" type="text" name="name" placeholder="Offering Name" />
            <input class="addCommunityInput" type="text" name="description" placeholder="Description" />
            <input class="addCommunityInput" type="text" name="location" placeholder="Location & Time Information" />
            <input class="addCommunityInput" type="number" name="peopleLimit" placeholder="Student Capacity" />
            <input class="addCommunityInput" type="text" name="moderator" placeholder="Moderator Names(s)" />
            <?php createModeratorFormPart(); ?>      
        </fieldset>

        <div>
            <p>Days Offered:</p>

            <div class="control-group">
        <label class="control control-checkbox">
            Monday
                <input name="monday" type="checkbox"/>
            <div class="control_indicator"></div>
        </label>
        <label class="control control-checkbox">
            Tuesday
                <input  name="tuesday" type="checkbox"/>
            <div class="control_indicator"></div>
        </label>
        <label class="control control-checkbox">
            Wednesday
                <input  name="wednesday" type="checkbox" />
            <div class="control_indicator"></div>
        </label>
        <label class="control control-checkbox">
            Thursday
                <input  name="Thursday" type="checkbox" />
            <div class="control_indicator"></div>
        </label>
        <label class="control control-checkbox">
            Friday
                <input  name="Friday" type="checkbox" />
            <div class="control_indicator"></div>
        </label>
    </div>

        <input type="submit" value="Submit">


    </form>
    </body>
    </html>

我正在尝试运行此函数:

代码语言:javascript
复制
function addModerator(){
    var fieldset = document.getElementById("moderator");
    //create encompassing div so that deletion of the moderator can be deleted easily   
    var div = document.createElement("div");
    div.setAttribute("className", "moderator");

    //create label
    var label = document.createElement("Label");
    label.appendChild(document.createTextNode("Moderator"));
    div.appendChild(label);

    //create text field
    var input = document.createElement("Input");
    input.setAttribute("placeholder","Moderator Email");
    input.setAttribute("type","email");
    div.appendChild(input);

    //create the delete button
    var button = document.createElement("button");
    button.setAttribute("value","-");
    button.setAttribute("onClick", "dropModerator(this)");
    div.appendChild(button);

    //add the div to the fieldset
    fieldset.appendChild(div);
}

当我通过onClick事件运行它时,控制台没有显示任何JS错误:然而,iframe文档变成了父页面的文档(即使iframe src属性没有改变)(链接到这里,尽管我不能想象它是如何相关的:https://github.com/articDrag0n/PrepApp/blob/master/web/teacher/teacher.php)这是怎么发生的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-19 00:16:51

问题出在表单提交上

每次我点击一个按钮,表单就会提交(由于表单处理代码,会转到父页面);

解决方案是添加下面这行button.setAttribute(“类型”,“按钮”);或者,如果您是在html中执行此操作

最终成为了这个的克隆:Can I make a not submit a form?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45744128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档