我正在使用類似於下面的內容,使用jQuery overlay並定義了modalyesno
jsp標記。
刪除按鈕 - 在rev
屬性我提供delete action
,這將作爲用戶確認刪除請求(點擊是)。一個<t:modalyesno />
組件可能適用於許多刪除按鈕。
<a href="#" class="modalInput" rev="deleteitem.html?id=123" rel="#yesno" >Delete</a>
<t:modalyesno id="yesno">
Deleting item. Are You sure ?
</t:modalyesno>
modalyesno.tag:
<%@ tag description="Confirmation Dialog" pageEncoding="UTF-8"%>
<%@ attribute name="id" required="true" type="java.lang.String" %>
<!-- confirm modal dialog -->
<div class="modal" id="${id}">
<div style="text-align: center;">
<div>
<jsp:doBody/>
</div>
<div class="buttons">
<a class="close" href="#"><span>No</span></a>
<a class="close yes" href="#"><span>Yes</span></a>
</div>
</div>
</div>
的jQuery:
$(document).ready(function(){
$(".modalInput").overlay({
mask: {
color: '#aaa',
loadSpeed: 'fast',
opacity: 0.5
},
speed: 'fast',
closeOnClick: true
});
$('.modalInput').click(function(){
var modal = $(this).attr('rel');
var action = $(this).attr('rev');
/* set action on yes button */
$(modal).find('.yes').eq(0).attr('href', action);
});
});
我的這個解決方案的問題是,它違反了標準。您絕對不應該使用GET操作來修改數據。想象一下GoogleBot在抓取您的網站。它不知道YES和NO鏈接的區別,可以清除整個數據庫。 我強烈建議您找到一種方式來發布或刪除網絡資源,這樣一個無辜的機器人將會避免這些方法,並且您的應用程序符合完善的標準。 – Eddie 2011-09-20 16:39:05
@Eddie它在你的系統中一定是一個嚴重的安全漏洞。如果機器人可能會損壞您的系統,任何人都可以。 – Vic 2013-06-25 11:28:38
哈哈,是的@vic,閱讀我最後的評論我的用例肯定有點極端,但我對堅持標準的看法依然存在。 Create = post,read = get,update = put,delete = delete。 – Eddie 2013-07-01 19:06:50