0

嗨,

我有非常奇怪的行为(至少,我认为这很奇怪......)

我有一个页面,用户可以在其中选择背景颜色和文本颜色。

我在互联网上找到了一个颜色选择器,这一切都很好......

但是每次我打开弹出窗口时,页面都会重新加载。为了测试这一点,我在脚本标签中添加了一个警报,当我访问页面和打开弹出窗口时我收到了警报......

这很烦人,因为用户所做的更改将在每次打开弹出窗口时丢失......

这是触发弹出窗口的按钮:

<button onclick="PopUp(\'background\')">gebruik de color picker</button>

请注意,这是 php 字符串的一部分,所以这就是单引号被转义的原因......

这是PopUp的功能:

function PopUp(keuze){
    if(keuze == 'background'){
        $('#clicked_one').val('background');
        var de_waarde = $('#background_keuze').val();
        $('#clicked_value').val(de_waarde);
    }
    else if(keuze == 'text'){
        $('#clicked_one').val('text');
        var de_waarde = $('#text_keuze').val();
        $('#clicked_value').val(de_waarde);
    }
    window.open( './popup_color_picker.php', '_blank', 'width=500,height=500');
}

弹出页面:

<?php
include '../config.php';
?>
<!DOCTYPE html>
<html>
    <head>
        <title>Color Picker</title>
        <script src="<?php echo $root_off_page; ?>javascript/color_picker.js"></script>
    </head>
    <body>
        <input type="text" class="color" id="color" value="">
        <button onclick="klaar()">deze kleur wordt het</button>
    </body>
</html>

<script>
    var wat_is_geklikt = opener.document.getElementById('clicked_one').value;
    var de_juiste_waarde = opener.document.getElementById('clicked_value').value;

    function klaar(){
        var de_gekozen_kleur = document.getElementById('color').value;
        if(wat_is_geklikt == 'background'){
            opener.document.getElementById('background_keuze').value = de_gekozen_kleur;
        }
        else if(wat_is_geklikt == 'text'){
            opener.document.getElementById('text_keuze').value = de_gekozen_kleur;
        }

        self.close()
    }

</script>

那么有人看到为什么主页(开瓶器)重新加载的问题吗???

谢谢

4

2 回答 2

2

按钮的默认类型(如果省略)是提交,它会导致页面重新加载。只需将类型更改为按钮

<button type="button" onclick="PopUp(\'background\')">gebruik de color picker</button> 
于 2012-05-10T06:08:56.440 回答
0

我在 < a > 标签上遇到了同样的问题,我在其中添加了 type="button" 并解决了我的问题,感谢您的帮助!

于 2013-05-13T20:33:27.190 回答