當在本機端執行網頁時狀況一切正常,但放上server端因有外部框架內嵌自己的網頁時,卻無法使用AJAX元件…
1) 首先我們來到ASP.NET AJAX的安裝路徑抓取MicrosoftAjax.debug.js 及MicrosoftAjax.js 這兩個檔案
路徑:C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025\MicrosoftAjaxLibrary\System.Web.Extensions\1.0.61025.0
2) 接著在自己的專案裡建立AJAX_JS 名稱資料夾並放入
3) 再來修改這兩個檔案中將case Sys.Browser.InternetExplorer:跟case Sys.Browser.Safari:之間的程式碼換成以下內容並存檔:
Sys.UI.DomElement.getLocation = function(element) {
if (element.self || element.nodeType === 9) return new Sys.UI.Point(0,0);
var clientRect = element.getBoundingClientRect();
if (!clientRect) {
return new Sys.UI.Point(0,0);
}
var ownerDocument = element.document.documentElement;
var offsetX = clientRect.left - 2 + ownerDocument.scrollLeft,
offsetY = clientRect.top - 2 + ownerDocument.scrollTop;
try {
var f = element.ownerDocument.parentWindow.frameElement || null;
if (f) {
var offset = 2 - (f.frameBorder || 1) * 2;
offsetX += offset;
offsetY += offset;
}
}
catch(ex) {
}
return new Sys.UI.Point(offsetX, offsetY);
}
break;
4) 然後在你的主版或是需要使用ajax的頁面加上
<asp:ScriptManager ID="ScriptManagerMain" runat="server" >
<Scripts>
<asp:ScriptReference
Name="MicrosoftAjax.js" ScriptMode="Auto"
Path="~/AJAX_JS/MicrosoftAjax.js" />
</Scripts>
</asp:ScriptManager>
5) 把加入的檔案上傳後再重新執行即可正常使用AJAX元件
參考網站
https://dotblogs.com.tw/jimmyyu/archive/2009/04/21/8116.aspx