Hi Everyone,
I am using RadEditor, and I am trying to create an insert/upload image dialog. It works great in FF, Chrome, IE7/8 and before, but in IE9 it throws JavaScript error
“Line: 792
Error: DOM Exception: INVALID_CHARACTER_ERR (5)”
Built in debugger is throwing error at
}}else{var o=($telerik.isIE)?document.createElement("<iframe name='"+c+"'>"):document.createElement("iframe");
o.name=c;
And console is showing:
SCRIPT5022: DOM Exception: INVALID_CHARACTER_ERR (5)
ScriptResource.axd?d=rJkSr8ttpP52D876ZF1WeNxnHE6aTSXEyuHB1Xl6uJ1zBgTteHkHuv7Y2iAt9aZv9uah5nKxT6ylXPwwQHwgyljpNIHN3Q0-kSVosKQoQ2uPIfQme2LiD3_reNMfI8mZGncmOhVbL4j51EIh2kStPmT25r81&t=ffffffff987f999b, line 792 character 8
This is JavaScript used
<script type="text/javascript">
Telerik.Web.UI.Editor.CommandList["InsertCustomImage"] = function(commandName, editor, args) {
var myCallbackFunction = function(sender, args) {
editor.pasteHtml(String.format("<img src='{0}' border='0' align='middle' alt='Custom Image' /> ", args.image));
}
editor.showExternalDialog(
"UploadEmailImage.aspx",
{},
400,
310,
myCallbackFunction,
null,
"Insert Image",
true,
Telerik.Web.UI.WindowBehaviors.Close + Telerik.Web.UI.WindowBehaviors.Move,
false,
true);
};
</script>
And aspx is:
<telerik:RadEditor ID="txtEmailMessage" runat="server" Width="99%" Height="300px">
<Tools>
<telerik:EditorToolGroup>
<telerik:EditorTool Name="InsertCustomImage" Text="Insert Image" />
</telerik:EditorToolGroup>
</Tools>
</telerik:RadEditor>
Any help welcome
If you need anything else, please ask.
Cheers
S
-----------------test.aspx -----------------------
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
<script type="text/javascript">
function pageLoad(sender, eventArgs) {
var tableView = $find("<%= RadGrid1.ClientID %>").get_masterTableView();
$find("<%= RadAjaxLoadingPanel1.ClientID %>").show("<%= RadGrid1.ClientID %>");
PageMethods.GetData(0, tableView.get_pageSize(),
tableView.get_sortExpressions().toString(), tableView.get_filterExpressions().toList(),
updateGrid);
PageMethods.GetCount(tableView.get_filterExpressions().toList(), updateVirtualItemCount);
}
function updateGrid(result) {
var tableView = $find("<%= RadGrid1.ClientID %>").get_masterTableView();
tableView.set_dataSource(result);
tableView.dataBind();
$find("<%= RadAjaxLoadingPanel1.ClientID %>").hide("<%= RadGrid1.ClientID %>");
}
function updateVirtualItemCount(result)
{
var tableView = $find("<%= RadGrid1.ClientID %>").get_masterTableView();
tableView.set_virtualItemCount(result);
}
function RadGrid1_Command(sender, args) {
args.set_cancel(true);
var pageSize = sender.get_masterTableView().get_pageSize();
var sortExpressions = sender.get_masterTableView().get_sortExpressions();
var filterExpressions = sender.get_masterTableView().get_filterExpressions();
var currentPageIndex = sender.get_masterTableView().get_currentPageIndex();
if (args.get_commandName() == "Filter")
currentPageIndex = 0;
var sortExpressionsAsSQL = sortExpressions.toString();
var filterExpressionsAsSQL = filterExpressions.toString();
$find("<%= RadAjaxLoadingPanel1.ClientID %>").show("<%= RadGrid1.ClientID %>");
PageMethods.GetData(currentPageIndex * pageSize, pageSize, sortExpressionsAsSQL, filterExpressions.toList(), updateGrid);
}
</script>
</telerik:RadCodeBlock>
<telerik:RadScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server" />
<telerik:RadGrid ID="RadGrid1" EnableViewState="false" runat="server" AllowPaging="true"
AllowSorting="True" AllowFilteringByColumn="true" GridLines="None">
<ItemStyle Wrap="false" />
<MasterTableView AllowMultiColumnSorting="true" TableLayout="Fixed">
<Columns>
<telerik:GridBoundColumn DataField="EmployeeID" HeaderText="EmployeeID" HeaderStyle-Width="100px"
FilterControlWidth="50px" />
<telerik:GridBoundColumn DataField="ENAME" HeaderText="ENAME" />
<telerik:GridBoundColumn DataField="SALARY" HeaderText="SALARY" />
</Columns>
</MasterTableView>
<PagerStyle AlwaysVisible="true" Mode="NumericPages" />
<ClientSettings>
<ClientEvents OnCommand="RadGrid1_Command" />
</ClientSettings>
</telerik:RadGrid>
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" />
-----------------test.aspx.cs -----------------------
[WebMethod]
public static int GetCount(List<GridFilterExpression> filterExpressions)
{
int count = 0;
using (SqlConnection connection =
new SqlConnection(
ConfigurationManager.ConnectionStrings["sqlConstr"].ConnectionString))
{
StringBuilder sqlBuilder = new StringBuilder();
sqlBuilder.Append("SELECT COUNT(*) FROM Employee");
SqlCommand command = new SqlCommand(sqlBuilder.ToString(),
connection);
parameters.ForEach(
delegate(DbParameter parameter) { if (parameter != null) command.Parameters.Add(parameter); });
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
count = reader.GetInt32(0);
}
reader.Close();
}
return count;
}
[WebMethod]
public static List<Employee> GetData(int startIndex, int maximumRows,
string sortExpressions, List<GridFilterExpression> filterExpressions)
{
List<Employee> list = new List<Employee>();
StringBuilder sqlBuilder = new StringBuilder();
sqlBuilder.AppendLine(" SELECT * FROM Employee");
sqlBuilder.AppendLine(" Order By EID ASC");
using (SqlConnection connection =
new SqlConnection(
ConfigurationManager.ConnectionStrings["sqlConstr"].ConnectionString))
{
SqlCommand command = new SqlCommand(sqlBuilder.ToString(), connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
try
{
while (reader.Read())
{
Employee newEmployee = new Employee();
for (int i = 0; i < reader.FieldCount; i++)
{
switch (reader.GetName(i))
{
case "SALARY":
newEmployee.SALARY = reader.GetInt32(i);
break;
case "ENAME":
newEmployee.ENAME = reader.GetString(i);
break;
case "EID":
newEmployee.EID = reader.GetString(i);
break;
default:
break;
}
}
list.Add(newEmployee);
}
}
finally
{
reader.Close();
}
}
return list;
}
public class Employee
{
private string _EID;
private string _ENAME;
private int _SALARY;
public Employee()
{
}
public string EID
{
get
{
return this._EID;
}
set
{
if ((this._EID != value))
{
this._EID = value;
}
}
}
public string ENAME
{
get
{
return this._ENAME;
}
set
{
if ((this._ENAME != value))
{
this._ENAME = value;
}
}
}
public int SALARY
{
get
{
return this._SALARY;
}
set
{
if ((this._SALARY != value))
{
this._SALARY = value;
}
}
}
}
Thanks in advance
Anwar
I have custom page in SP2010 where I have used RadEditor Control which is working in IE 8.0 but not working in IE 9.0.
In IE 9.0, its thowing error following error.
Error 1: When page load
Webpage error details
Message: Unable to get value of the property 'addEventListener': object is null or undefined
Error 2: When trying to choose option of custom context menu.
Message: Unable to get value of the property 'set_activePopup': object is null or undefined
Please reply as early as possible. Due to this issue, product release is on hold.
Please see the Telerik version detail in attached file.
Thanks in advance.
Regards,
Hitendra
<
telerik:RadScheduler
ID
=
"RadScheduler1"
runat
=
"server"
Height
=
"100%"
OverflowBehavior
=
"Scroll"
>
</
telerik:RadScheduler
>