asp.net
2012-12-13 67 views 4 likes 
4

我的網頁中有一個iframe,runat="server"和javascript函數分配給onload事件。
當頁面呈現時,它給出了一個錯誤
"CS1012: Too many characters in character literal"
當我刪除runat =「server」屬性它完美的作品,但我需要的iframe runat =「服務器」。
我該如何解決這個問題?當runat =「server」時發生iframe錯誤

<iframe id='contentFrame' name='contentFrame' 
    runat="server" width="500" 
    onload="resizeFrame(document.getElementById('contentFrame'))"> 
</iframe> 

回答

0

雙取代單引號:

< iframe id="contentFrame" name="contentFrame" runat="server" width="500" onload="resizeFrame(document.getElementById('contentFrame'))"> 
0

中的onload方法你可以不寫document.getElementById('contentFrame')。把它寫在你的javascript函數中。

11

當您使用runat =「server」 - 'onload'開始被解析爲Html服務器控件的C#事件,如Button.Click。您應該在控件/頁面(非JavaScript)的類中設置名稱爲C#事件處理程序方法。此代碼將起作用:

<script runat="server"> 
    void contentFrame_onLoadServer(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
      contentFrame.Attributes.Add("onLoad", "contentFrame_onLoadClient();"); 
    } 
</script> 
<script type="text/javascript"> 
    function contentFrame_onLoadClient() { 
     resizeFrame(document.getElementById('<%=contentFrame.ClientID %>')); 
    } 
    function resizeFrame(element) { 
     alert(element); // do your logic here 
    } 
</script> 
<iframe 
    runat="server" 
    id='contentFrame' 
    name='contentFrame' 
    width="500" 
    onload="contentFrame_onLoadServer" 
    /> 
0

runat =「server」更改IFrame的ID。

而不是傳遞「的document.getElementById( 'contentFrame')」在JavaScript 「這個」

或者你也可以傳遞

document.getElementById('<%= contentFrame.ClientID%>') 
1

你不能「只」增加對客戶端代碼的onload事件,因爲它是由.NET服務器端的onload「佔領」。您需要通過代碼(以及我增強的@Philipp的代碼)將其掛起來:

<script runat="server"> 
void onIframeLoad(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     contentFrame.Attributes.Add("onload", "resizeFrame(document.getElementById('contentFrame'));"); 
    } 
} 
</script> 
<iframe id='contentFrame' 
    name='contentFrame' 
    runat="server" width="500" 
    onload="onIframeLoad"/> 
+0

您已經錯過了ClientId。我已更新我的代碼 –

+0

好趕,我不會更新我的代碼,所以你得到學分;) –

+0

得分!!! :-)))) –

相關問題