お世話になります。
イグトランスさん、ありがとうございます。
早速チャレンジ(1回目の思考錯誤です)
コード: 全て選択
[hide={TEXT1;optional}]{TEXT2}[/hide]
に設定変更して
コード: 全て選択
<dl aria-expanded="false" class="codebox">
<dt>
<a href="javascript:void(0)"
if ({TEXT1} == NULL)
{
{TEXT1} = 'ここをクリックすると内容が表示されます。'
};
onclick="var topElement = this.parentNode.parentNode;
var e = topElement.getElementsByTagName('dd')[0];
if (e.hasAttribute('hidden')) {
e.removeAttribute('hidden');
this.textContent = 'ここをクリックすると非表示にします。';
topElement.setAttribute('aria-expanded', 'true');
} else {
e.setAttribute('hidden', '');
this.textContent = {TEXT1};
topElement.setAttribute('aria-expanded', 'false');
}">
{TEXT1}
</a>
</dt>
<dd hidden>
{TEXT2}
</dd>
</dl>
とコードを加工し登録すると、
警告
トークン {TEXT} が HTMLタグ 内で使用されています。XSS 攻撃を受ける可能性があり、セキュリティ上非常に危険です。
HTMLタグ 内ではより限定的な {SIMPLETEXT} または {INTTEXT} が使用されるべきです。
この危険性を十分承知した上でどうしてもトークン {TEXT} を HTMLタグ 内で使用したい場合は “はい” をクリックしてください。
というエラーが発生し、それを無視し突破して、
コード: 全て選択
[hide]test1[/hide]
[hide=test2]test2[/hide]
とテストするも、やっぱりうまく動きません。
試行錯誤というよりは暗中模索ですね。m(_ x _)m
とりあえずイグトランスさんの提示していただいた母体コードで稼働中です。
コード: 全て選択
<dl aria-expanded="false" class="codebox">
<dt>
<a href="javascript:void(0)"
onclick="var topElement = this.parentNode.parentNode;
var e = topElement.getElementsByTagName('dd')[0];
if (e.hasAttribute('hidden')) {
e.removeAttribute('hidden');
this.textContent = 'ここをクリックすると非表示にします。';
topElement.setAttribute('aria-expanded', 'true');
} else {
e.setAttribute('hidden', '');
this.textContent = 'ここをクリックすると内容が表示されます。';
topElement.setAttribute('aria-expanded', 'false');
}">
ここをクリックすると内容が表示されます。
</a>
</dt>
<dd hidden>
{TEXT2}
</dd>
</dl>
※すいません。hideの記述にhideコードで非表示にすると、機能してしまうので、非表示機能は使用していません。
※ソートロジック大会の最終トピックは以下のコードで記述していますが、
コード: 全て選択
[hide=最終実行速度比較が表示されます。]
山本さまはどんなコードを記述したのか、神の領域ですね。