Sor*_*ami 2 .net javascript jquery visual-studio-2008
我正在运行Visual Studio 2008和.NET 3.5
我用javascript创建了一个javascript方法(window.unbeforeload),在尝试退出网站时给用户一条消息.不幸的是,显示同样的消息,每次用户点击,这不是重定向网站之外的链接时.
解决方案:让jquery处理站点内的所有链接点击.但这不起作用.
<asp:Content ID="ContentHead" ContentPlaceHolderID="head" runat="server">
<script type="text/javascript" src="HTML/jquery.js"></script>
<script type="text/javascript">
$(document).live('click',function() {
$("a").click(function() {
alert("Hello world!");
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
//很多其他功能
<script type="text/javascript">
window.onbeforeunload = function() {
return "REALLY?"
}
</script>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
在这里,我试着点击网站内的链接创建一个警报,但没有成功.
如何在我的应用程序中使Jquery工作?
Sideinfo:我已经验证了jquery文件存在于HTML/jquery.js但是尽管如此,Visual Studio 2008会发出一个未找到文件的警告.另一个与jquery文件具有完全相同路径的.aspx页面不会发出此警告.
更新:
<%@ Page Language="C#" MasterPageFile="~/Manage/ConceptManager.Master" AutoEventWireup="true" CodeBehind="ConceptManager.aspx.cs" Inherits="DynamicForm.Manage.ConceptManagerPage" %>
<%@ Register src="Controls/Element_MetadataEditor_FieldNode.ascx" tagname="Element_MetadataEditor_FieldNode" tagprefix="uc1" %>
<%@ Register src="Controls/Element_MetadataEditor_TemplateNode.ascx" tagname="Element_MetadataEditor_TemplateNode" tagprefix="uc3" %>
<%@ Register src="Controls/CategoryAttributes.ascx" tagname="CategoryAttributes" tagprefix="usercontrol" %>
<%@ Register Src="Controls/ConfirmDialog.ascx" TagName="DeleteConfirmDialog" TagPrefix="usercontrol" %>
<%@ Register Src="Controls/ConfirmDialog.ascx" TagName="ConfirmDialog" TagPrefix="usercontrol" %>
<%@ Register src="Controls/AddReferenceDialog.ascx" TagName="AddReferenceDialog" TagPrefix="usercontrol" %>
<%@ Register src="Controls/AddIncludeDialog.ascx" TagName="AddIncludeDialog" TagPrefix="usercontrol" %>
<%@ Register Assembly="ExtExtenders" Namespace="ExtExtenders" TagPrefix="ExtExt" %>
<asp:Content ID="ContentHead" ContentPlaceHolderID="head" runat="server">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var mydomain = "mysite.com";
var leavemessage = "Are you sure you wish to leave?";
var filterMySitefunction = function(index) {
return $(this).attr("href").indexOf(mydomain) > -1;
}
var filterOtherSitefunction = function(index) {
return $(this).attr("href").indexOf(mydomain) == -1;
}
$("a").filter(filterMySitefunction).click(function() {
window.onbeforeunload = function() { };
});
$("a").filter(filterOtherSitefunction).click(function() {
window.onbeforeunload = function() {
return leavemessage;
};
});
});
</script>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
我完全不知所措.对上面的Peeter没有冒犯,但这似乎是一个过于复杂的解决方案,通过做类似的事情可以实现同样的目标
$(function($){
$('a').not('[href*="mydomain.com"]')
.click(function(e){
// visiting some other domain!
});
});
Run Code Online (Sandbox Code Playgroud)
优秀的jQuery:In Action书也建议只是检查a[href^="http://"]外部链接,这就是我坚持这样做的方式.
就个人而言(因为我对这个特殊的位有点偏执),我把两者拼凑在一起作为一种全能(以防万一有人或某事投入内部绝对URL).
$('a[href^="http://"]').not('[href*="mydomain.com"]')
.click(function(e){
// visiting some other domain!
});
Run Code Online (Sandbox Code Playgroud)