Author: psharples
Date: Wed Oct 27 08:29:11 2010
New Revision: 1027854
URL: http://svn.apache.org/viewvc?rev=1027854&view=rev
Log:
Added preferences getter/setter fix for IE9 beta
Modified:
incubator/wookie/trunk/WebContent/shared/js/wookie-wrapper.js
Modified: incubator/wookie/trunk/WebContent/shared/js/wookie-wrapper.js
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/WebContent/shared/js/wookie-wrapper.js?rev=1027854&r1=1027853&r2=1027854&view=diff
==============================================================================
--- incubator/wookie/trunk/WebContent/shared/js/wookie-wrapper.js (original)
+++ incubator/wookie/trunk/WebContent/shared/js/wookie-wrapper.js Wed Oct 27
08:29:11 2010
@@ -60,11 +60,18 @@ WidgetPreferences = new function WidgetP
eval("Widget.preferences.__defineGetter__('"+key+"',
function(){return Widget.preferences.getItem('"+key+"')})");
eval("Widget.preferences.__defineSetter__('"+key+"',
function(v){return Widget.preferences.setItem('"+key+"',v)})");
eval("Widget.preferences.prefs."+key+"=pref");
- }
- // Catch IE 8 error. See WOOKIE-44
- catch(err){
- eval("Widget.preferences." + key + "='" + value + "'");
- eval("Widget.preferences.prefs." + key +
"=pref");
+ }
+ catch(err){
+ // cant use __defineGetter__ so try to setup for IE9
+ try{
+
eval("Object.defineProperty(Widget.preferences,'" + key + "', {get: function
get() { return Widget.preferences.getItem('"+key+"');},set: function set(value)
{Widget.preferences.setItem('"+key+"',value)}});");
+ eval("Widget.preferences.prefs."+key+"=pref");
+ }
+ catch(err){
+ // Catch IE 8 error. See WOOKIE-44
+ eval("Widget.preferences." + key + "='" + value
+ "'");
+ eval("Widget.preferences.prefs." + key +
"=pref");
+ }
}
}
this.prefs[key] = pref;
@@ -98,8 +105,8 @@ WidgetPreferences = new function WidgetP
/*
* Widget object
*/
-var Widget = {
- instanceid_key : null,
+var Widget = {
+ instanceid_key : null,
proxyUrl : null,
// this should be assigned by the calling JS app
onSharedUpdate : null,
@@ -163,14 +170,21 @@ var Widget = {
obj = map[i];
key = obj["dkey"];
try{
-
eval("Widget.preferences.__defineGetter__('"+key+"', function(){return
Widget.preferences.getItem('"+key+"')})");
+ eval("Widget.preferences.__defineGetter__('"+key+"',
function(){return Widget.preferences.getItem('"+key+"')})");
eval("Widget.preferences.__defineSetter__('"+key+"',
function(v){return Widget.preferences.setItem('"+key+"',v)})");
eval("this.preferences.prefs."+key+"=obj");
}
- // Catch IE 8 error. See WOOKIE-44
catch(err){
- eval("Widget.preferences.setItem('" + key + "','" +
obj["dvalue"] + "')");
- eval("Widget.preferences.getItem('" + key + "') == '" +
obj["dvalue"] + "'");
+ // cant use __defineGetter__ so try to setup for IE9
+ try{
+ eval("Object.defineProperty(Widget.preferences,'" + key
+ "', {get: function get() { return
Widget.preferences.getItem('"+key+"');},set: function set(value)
{Widget.preferences.setItem('"+key+"',value)}});");
+ eval("this.preferences.prefs."+key+"=obj");
+ }
+ catch(err){
+ // Catch IE 8 error. See WOOKIE-44
+ eval("Widget.preferences.setItem('" + key + "','" +
obj["dvalue"] + "')");
+ eval("Widget.preferences.getItem('" + key + "') == '" +
obj["dvalue"] + "'");
+ }
}
}
this.preferences.calcLength();