私の質問に対して正しい貴重な回答をしてくれた人々に、すべての功績が認められるべきです。
将来この質問の答えを求める人のために、良い答えを作ることにしました。
私は基本的に私の答えを2つのセクションに分けます。
私の最初の質問に関しては、ハイパーリンクを使用した解決策が必要でした。
最初の方法はハイパーリンクです
@Jeemusuのコメントとして。
Fancybox は AJAX を使用してコンテンツをロードします。と呼ばれる HTTP 変数セットがあります。これは 、AJAX 要求の場合にHTTP_X_REQUESTED_WITH
設定され、設定されます。'xmlhttprequest'
そのため、誰かがリンクを新しいタブで開いても、それが であるかどうかを確認AJAX
しnon-AJAX
、それに応じてコンテンツを表示できます。したがって、右クリックの心配はありません。
<?php
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
//this is an ajax request. do what you need to
}
else {
//this is non ajax. do what you need
}
?>
2 番目のオプションは、ハイパーリンクをボタンまたは任意の div として変更することです。
一般的な考え方は、すべての可能性'open-in-same-window'
を無効にしながら機能を取得することです。'open-in-new-window'
@Scuzzyと@techfoobarの回答として
<input type="button" value="click here" class="fake-fancy" data-href="linktothereportform?id=5">
<span class="fake-fancy" data-href="linktothereportform?id=5">Report</span>
<script type="text/javascript">
jQuery('.fake-fancy').click(function(){
jQuery.fancybox.open({
href: jQuery(this).attr('data-href'),
type: 'ajax'
});
});
</script>
また
jQuery('a.report').each(function(){jQuery(this).replaceWith('<button onclick="window.location.href=\'' + jQuery(this).attr('href') + '\'">report</button>');});