diff --git a/services/html-module/Chapter 2/Paste Buttons.w b/services/html-module/Chapter 2/Paste Buttons.w index 01d0c5da5..a0fe185f8 100644 --- a/services/html-module/Chapter 2/Paste Buttons.w +++ b/services/html-module/Chapter 2/Paste Buttons.w @@ -11,15 +11,10 @@ Inform application. This is done with Javascript which looks something like this: = (text) - var myProject = external.Project; + var myProject = window.Project; myProject.selectView('source'); myProject.pasteCode('Trying Taking Manhattan'); = -Thus for Windows: for MacOS, the same code but |window.Project| rather -than |external.Project|. Several details unfortunately differ on Windows, -so there are two implementations below: one used if |WINDOWS_JAVASCRIPT| is -defined, one if not. (See //foundation: Windows Platform// for where this -is set.) @ The challenges here are that (a) the code to be pasted may be, say, as much as 5K in size, and that (b) it needs to include some special characters, @@ -77,13 +72,9 @@ void PasteButtons::put_code_char(OUTPUT_STREAM, int c) { @h Buttons. The button is simply an image with a link using the |javascript:| protocol -to call a suitable function; on Windows we make a one-off script for each -paste to avoid problems when the code is too long to pass as a Javascript -argument. (These concerns may now have become obsolete; Windows browsers -have improved immensely since 2007.) +to call a suitable function. = -int javascript_fn_counter = 1000; void PasteButtons::paste_W(OUTPUT_STREAM, wording W) { PasteButtons::paste_inner(OUT, Wordings::first_wn(W), Wordings::last_wn(W), NULL); } @@ -91,31 +82,14 @@ void PasteButtons::paste_text(OUTPUT_STREAM, text_stream *alt_stream) { PasteButtons::paste_inner(OUT, -1, -1, alt_stream); } void PasteButtons::paste_inner(OUTPUT_STREAM, int from, int to, text_stream *alt_stream) { - #ifndef WINDOWS_JAVASCRIPT /* MacOS style, with long function arguments allowed in links */ - TEMPORARY_TEXT(link) - WRITE_TO(link, "href=\"javascript:pasteCode("); - PasteButtons::argument(link, from, to, alt_stream); - WRITE_TO(link, ")\""); - HTML_OPEN_WITH("a", "%S", link); - DISCARD_TEXT(link) - HTML_TAG_WITH("img", "border=0 src=inform:/doc_images/paste.png"); - HTML_CLOSE("a"); - #endif - - #ifdef WINDOWS_JAVASCRIPT /* Windows style, with long function arguments in links unreliable */ - WRITE("\n"); - HTML_OPEN_WITH("a", "href=\"javascript:pasteCode%d()\"", javascript_fn_counter++); - HTML_TAG_WITH("img", "border=0 src=inform:/doc_images/paste.png"); - HTML_CLOSE("a"); - #endif + TEMPORARY_TEXT(link) + WRITE_TO(link, "href=\"javascript:pasteCode("); + PasteButtons::argument(link, from, to, alt_stream); + WRITE_TO(link, ")\""); + HTML_OPEN_WITH("a", "%S", link); + DISCARD_TEXT(link) + HTML_TAG_WITH("img", "border=0 src=inform:/doc_images/paste.png"); + HTML_CLOSE("a"); } @ In the following, the source of the text can be either a range of words