diff options
-rw-r--r-- | actionpack/CHANGELOG | 2 | ||||
-rw-r--r-- | actionpack/lib/action_view/helpers/prototype_helper.rb | 2 | ||||
-rw-r--r-- | actionpack/test/template/prototype_helper_test.rb | 4 |
3 files changed, 5 insertions, 3 deletions
diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index e87733b611..6bdfec8ae1 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Use Element.update('id', 'html') instead of $('id').innerHTML = 'html' in JavaScriptGenerator#replace_html so that script tags are evaluated. [Sam Stephenson] + * Make rjs templates always implicitly skip out on layouts. [Marcel Molina Jr.] * Correct length for the truncate text helper. #2913 [Stefan Kaes] diff --git a/actionpack/lib/action_view/helpers/prototype_helper.rb b/actionpack/lib/action_view/helpers/prototype_helper.rb index 74c32c7441..1ba607a90f 100644 --- a/actionpack/lib/action_view/helpers/prototype_helper.rb +++ b/actionpack/lib/action_view/helpers/prototype_helper.rb @@ -425,7 +425,7 @@ module ActionView # def replace_html(id, *options_for_render) html = render(*options_for_render) - record "$(#{id.inspect}).innerHTML = #{html.inspect}" + record "Element.update(#{id.inspect}, #{html.inspect})" end # Removes the DOM elements with the given +ids+ from the page. diff --git a/actionpack/test/template/prototype_helper_test.rb b/actionpack/test/template/prototype_helper_test.rb index c97aca5e79..c15280dcb3 100644 --- a/actionpack/test/template/prototype_helper_test.rb +++ b/actionpack/test/template/prototype_helper_test.rb @@ -167,7 +167,7 @@ class JavaScriptGeneratorTest < Test::Unit::TestCase end def test_replace_html_with_string - assert_equal '$("element").innerHTML = "<p>This is a test</p>";', + assert_equal 'Element.update("element", "<p>This is a test</p>");', @generator.replace_html('element', '<p>This is a test</p>') end @@ -202,7 +202,7 @@ class JavaScriptGeneratorTest < Test::Unit::TestCase new Insertion.Top("element", "<p>This is a test</p>"); new Insertion.Bottom("element", "<p>This is a test</p>"); ["foo", "bar"].each(Element.remove); -$("baz").innerHTML = "<p>This is a test</p>"; +Element.update("baz", "<p>This is a test</p>"); EOS end end |