親ページにはテキストエリアと小ウィンドウを開くボタンがある
親ページにあったボタンを押すと絵文字一覧が開かれる
その絵文字画像をクリックすると親ページのテキストエリアに挿入される
なお、挿入される場所は現在のカーソル位置であること
こんな感じでしょうか?
大分昔に作ったソースがあるので、参考程度にどうぞ
parent.php
<head>
<title></title>
<script language="javascript">
<!--
function EmojiSub()
{
window.open("icon.php?fname=fm1&txname=tx1","","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=400,height=250");
}
//-->
</script>
</head>
<FORM><INPUT type="button" name="btnShowChild" value="絵文字一覧" onClick="EmojiSub()">
</FORM>
<FORM name="fm1"><TEXTAREA rows="20" cols="50" name="tx1"></TEXTAREA></FORM>
icon.php
<?php
$fname = $_GET['fname'];
$txname = $_GET['txname'];
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<meta http-equiv="content-type" content="text/html; charset=utf-8"></meta>
<TITLE>絵文字サブウィンドウ</TITLE>
<script language="javascript">
<!--
function SetMsg(nValue){
tagInsert('【a:' +nValue+ '】');
}
function tagInsert(string)
{
var insert = string;
if (insert == 'default') return;
<?php print("var tarea = window.opener.document.getElementById('".$txname."');");?>
<?php print("window.opener.document.".$fname.".".$txname.".focus();");?>
if (/*@cc_on!@*/false) { // IE
var sel = window.opener.document.selection.createRange();
sel.text = insert;
} else {
<?php print("var body = window.opener.document.".$fname.".".$txname.".value;\n");?>
<?php print("var at = window.opener.document.".$fname.".".$txname.".selectionStart;\n");?>
<?php print("var tmp = body.substr(0, at);\n");?>
<?php print("window.opener.document.".$fname.".".$txname.".value = tmp + insert + body.substr(at, body.length);\n");?>
<?php print("var cursor = insert.length + at;\n");?>
<?php print("window.opener.document.".$fname.".".$txname.".setSelectionRange(cursor, cursor);\n");?>
}
}
//-->
</script>
</HEAD>
<BODY>
<P align="center">挿入したい絵文字をクリックしてください</P>
</P>
<?php
$Cnt = 0;
// 絵文字配列作成(使用する画像の拡張子前の番号です。この辺は改良の余地)
$array = array("1","2","3","4"……);
for($i=0;$i<count($array);$i++){
$Cnt++;
//横に並べる絵文字の数
if($Cnt>20){
print("<br>");
$Cnt = 1;
}
//ここで絵文字を実際に表示。
print("<a href=javascript:SetMsg('".$array[$i]."')><img src=pic/".$array[$i].".gif border=0></a>");
}
?>
</BODY>
絵文字クリックされると[i:番号]を挿入する形式です。
幾つか<html>等省略してます。
これとは別に画像用のフォルダをつくり、番号.gif形式の画像を用意してください。
お礼
tuki_yuki様 はじめまして、こんにちは。 貴重なソースまでご提示いただき、ありがとう御座います。 >こんな感じでしょうか? はい!全くその通りでソースを実行させて頂いたときには感動さえしました。これまで全くといって良いほど、その流れのイメージが付かなかったもので・・。 すぐに完成という状況ではないため、これから途中躓くかもしれませんが、随分と開けたような感覚です。有難う御座いました。