junkerstock
 AI解説ボタンのサンプル2 

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>AIハイブリッド解説ボタン Perplexityは即回答するVer.</title>
<style>
body { font-family: sans-serif; padding: 1em; }
.container { display: flex; flex-direction: column; gap: 10px; max-width: 600px; }
textarea { width: 100%; height: 150px; font-family: monospace; padding: 8px; }
.controls { display: flex; gap: 10px; align-items: center; }
select, button { padding: 8px 12px; font-size: 1em; cursor: pointer; }
button { background-color: #007bff; color: white; border: none; border-radius: 4px; }
button:hover { background-color: #0056b3; }
.note { font-size: 0.9em; background-color: #eef; padding: 10px; border-radius: 4px; }
</style>
</head>
<body>

<h1>AIコード解説(ハイブリッド版)</h1>

<div class="container">
<p class="note">
<strong>Perplexity</strong>を選ぶと、自動で質問が送信されます。<br>
それ以外は質問文がコピーされるので、開いた画面で貼り付けてください。
</p>

<textarea id="targetCode" placeholder="ここにコードを入力...">
// テスト用のコード
console.log("Hello AI");
</textarea>

<div class="controls">
<select id="aiSelector">
<option value="perplexity">Perplexity (★自動送信可)</option>
<option value="gemini">Google Gemini</option>
<option value="chatgpt">ChatGPT</option>
<option value="claude">Claude</option>
</select>
<button onclick="askAI()">🚀 解説を聞く</button>
</div>
</div>

<script>
function askAI() {
const code = document.getElementById('targetCode').value;
if (!code.trim()) {
alert("コードが入力されていません。");
return;
}

// プロンプト(質問文)の作成
const prompt = "以下のコードを初心者向けに日本語で解説してください:\n\n" + code;

// 選択されたAIを取得
const aiService = document.getElementById('aiSelector').value;

// URLで日本語などを扱えるようにエンコード(変換)する
const encodedPrompt = encodeURIComponent(prompt);

if (aiService === 'perplexity') {
// 【パターンA】PerplexityはURLで質問を渡せる!
// https://www.perplexity.ai/search?q=質問文
const url = `https://www.perplexity.ai/search?q=${encodedPrompt}`;
window.open(url, '_blank');

} else {
// 【パターンB】それ以外はクリップボード経由
let url = "";
switch (aiService) {
case "gemini": url = "https://gemini.google.com/app"; break;
case "chatgpt": url = "https://chatgpt.com/"; break;
case "claude": url = "https://claude.ai/new"; break;
}

if (navigator.clipboard) {
navigator.clipboard.writeText(prompt).then(() => {
const confirmOpen = confirm("質問をコピーしました!\n\n" + aiService + "の画面が開いたら「貼り付け」してください。\n移動しますか?");
if (confirmOpen) {
window.open(url, '_blank');
}
}).catch(() => {
alert("コピーに失敗しました。");
window.open(url, '_blank');
});
} else {
alert("コピー機能が使えません。");
window.open(url, '_blank');
}
}
}
</script>

</body>
</html>


使用変数

aiService
askAI -------( Function )
charset
class
code
confirmOpen
encodedPrompt
id
lang
onclick
placeholder
prompt
q
url
value