我一直在尝试禁用某些以某种方式链接到数据库的链接,但我只需根据$_SESSION[]
echo '<script language="javascript">';
echo '$("a").removeAttr("href");';
echo "$('a').click(function(event){
event.preventDefault();
alert('No tiene permisos para ingresar');
});";
echo "</script>";
这些是我尝试过的一些,但链接仍然有效。
答案 0 :(得分:1)
您缺少就绪功能:
$(document).ready(function() {
// put your code here.
});
在DOM完全加载之前,大多数JQuery函数都不起作用。
答案 1 :(得分:0)
首先,尝试将此代码用作纯JavaScript并使其正常工作(无PHP)只需获取要禁用的链接。像这样......应该有用。
<script language="javascript">
function disableLinks(){
$('a').removeAttr('href');
$('a').click(function(event){
event.preventDefault();
alert('No tiene permisos para ingresar');
});
}
//trigger the function after the DOM is ready (possible problem)
$(document).ready(disableLinks);
</script>
如果不起作用,请在chrome上使用Javascript控制台并查找错误。确保加载jQuery。您之前的代码有可能在页面加载之前尝试禁用链接。 document.ready确保首先加载DOM。
如果这样可以添加PHP。我建议让php部分像这样简单。用这个替换脚本块的最后一行。
<?php
if($_SESSION['whatever']=='whatever'){
echo('$(document).ready(disableLinks);');
}
?>
这可以做得更清洁,但这应该让你去。
作为最后一点,请务必在后端强制执行此操作,因为这很容易被绕过,如果这是阻止访问的唯一方法,则不安全。
答案 2 :(得分:0)
使用$ .bind和$ .unbind
$( "a" ).bind( "click", function() {
alert( "The quick brown fox jumps over the lazy dog." );
});
并在会话中检查使用unbind
$( "a" ).unbind( "click" );
答案 3 :(得分:0)