やあ、
私は非常に奇妙な行動をしています(少なくとも、私はそれが奇妙だと思います...)
ユーザーが背景の色とテキストの色を選択できるページがあります。
私はインターネットでカラーピッカーを見つけました、そしてそれはすべてうまく機能しています...
しかし、ポップアップを開くたびに、ページがリロードされます。これをテストするために、スクリプトタグにアラートを追加しました。ページにアクセスしたとき、およびポップアップを開いたときにアラートを受け取りました...
ユーザーがポップアップを開くたびに行った変更が失われるため、これは非常に面倒です...
ポップアップを起動するボタンは次のとおりです。
<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>
それで、メインページ(オープナー)がリロードする理由を誰かが見ていますか?
ありがとう