c# - sesión - to view this video please enable javascript and consider upgrading to a web browser that
BHO exponiendo el método javascript funciona en IE 9+ pero falla en versiones anteriores (1)
Encontré una respuesta en Stack Overflow. Solo tienes que cambiar el código a esto:
public void InjectScriptResource(dynamic window)
{
var windowEx = (IExpando)window;
if (windowEx.GetProperty("signJson", BindingFlags.Default) == null)
{
// windowEx.AddProperty("signJson");
PropertyInfo p = windowEx.AddProperty("signJson");
// window.signJson = this;
p.SetValue(windowEx, this);
}
}
Estoy haciendo un BHO que expone el método a JavaScript.
Funciona bien en IE 9 e IE 10, pero falla en IE 8 con RuntimeBinderException : "mshtml.HTMLWindow2Class" does not contain "signJson"
.
El código se basa principalmente en la extensión de IE de recarga en vivo .
Aquí hay una forma en que la función se inyecta en la ventana:
public void InjectScriptResource(dynamic window)
{
var windowEx = (IExpando)window;
if (windowEx.GetProperty("signJson", BindingFlags.Default) == null)
{
windowEx.AddProperty("signJson");
window.signJson = this;
}
}
¿Qué hay de diferente sobre mshtml.HTMLWindow2Class
en IE 8 desde IE 9? ¿Cuál es la forma correcta de inyectar el método?