[Seaside] Seaside function onLoad problematic

Paul DeBruicker pdebruic at gmail.com
Mon Nov 28 18:21:17 UTC 2016


Hi Dario

Instead of rewriting how the strings are encoded you could maybe try


 html document addLoadScript: (JSStream on: ‘so_initdtr()’)






dtrussardi at tiscali.it wrote
> Ciao Johan,
> 
> 
> 	i add the A B C considerations.
> 
>> Hi Dario,
>> 
>> Try:
>> 
>> html document addLoadScript: (html javascript: ‘so_initdtr()’)
> 
> A)	The:	 html javascript:  	is not supported by the system
> 
> 			The call answer: 	" you sent a message this type of object doesn't
> understand"
> 
>> 
>> As you can notice in the generated html output, the contents of the
>> loadscript is a JS string.
> 
> 	Yes but into it the so_initdtr() is surround by the "
> 
> 		

> 
> 
> 
> B)	I change the 		JSStream 		 encodeString: aString on: aStream   metod
> 
> 	removing the initial and final 	 "aStream nextPut: $'."  ( view the ****
> )
> 
> 	 encodeString: aString on: aStream 
> 	"Strings have a complicated encoding in Javascript, try to optimize their
> serialization."
> 		
> ****  "aStream nextPut: $'."
> 	
> 	1 to: aString size do: [ :index | 
> 		| char value encoded |
> 		char := aString at: index.
> 		value := char greaseInteger.
> 		value < JavascriptCharacters size 
> 			ifFalse: [
> 				"U+2028 and U+2029 have to be treaded as new lines"
> 				value = 16r2028 "Line separator"
> 					ifTrue: [ aStream nextPutAll: '\u2028' ]
> 					ifFalse: [
> 						value = 16r2029 "Paragraph separator"
> 							ifTrue: [ aStream nextPutAll: '\u2029' ]
> 							ifFalse: [ aStream nextPut: char ] ] ]
> 			ifTrue: [
> 				encoded := JavascriptCharacters at: value + 1.
> 				"we use nil markers becausee #isNil is faster than #isString because
> it's not
> 				actually sent"
> 				encoded isNil 
> 					ifTrue: [ aStream nextPut: char ]
> 					ifFalse: [ aStream nextPutAll: encoded ] ] ].
> **** "aStream nextPut: $'"
> 
> 
> 	With this modification my code works fine.
> 
> 	The browser  report:
> 
> 		 

> 
> 
> 	But with this change the JQuery example don't works.
> 
> 
> C)	My final considerations is relative to the WAScriptGenerator	
> writeLoadScriptsOn: aDocument		metod 
> 
> 	I change it to the seaside 3.0 version: 
> 
> 	writeLoadScriptsOn: aDocument
> 	"Utility method to write the receivers load scripts onto aDocument."
> 
> 	" *** ----
> 		self loadScripts do: [ :each |
> 		aDocument stream javascript: each.
> 		aDocument  nextPut: $; ]"
> 	
> 	"**** +++ "
> 	self loadScripts do: [ :each |
> 		aDocument nextPutAll: each greaseString; nextPut: $; ]
> 
> 	With just this change everything works, but it is in the right direction?
> 
> 
> 	Thanks,
> 
> 		Dario
> 
>> 
>> cheers
>> Johan
>> 
>>> On 26 Nov 2016, at 19:00, 

> dtrussardi@

>  wrote:
>>> 
>>> Ciao,
>>> 
>>> 	into Pharo5.0 with Seaside 3.2 ( but i have the same problematic into
>>> Pharo 4.0 with Seaside 3.1 )
>>> 
>>> 	when define a function to load when the page has finished loading
>>> 
>>> 		with	 addLoadScript: 'so_initdtr()'.
>>> 
>>> 	the function is not called.
>>> 
>>> 
>>> 	For example:
>>> 
>>> 
>>> 	renderContentOn: html
>>> 
>>> 		html document addLoadScript: 'so_initdtr()'.
>>> 	
>>> 		html heading: 'Pippo'.
>>> 
>>> 
>>> 	The html report: 
>>> 
>>> 		

>>> 
>>> 	but the browser don't call it when load the page.
>>> 
>>> 	The relative javascript code is right loaded into the browser.
>>> 
>>> 	I can call the	 	so_initdtr()	function with the browser console and it
>>> works fine.
>>> 
>>> 
>>> 	Thanks in advance!
>>> 
>>> 	Dario
>>> 
>>> 			
>>> _______________________________________________
>>> seaside mailing list
>>> 

> seaside at .squeakfoundation

>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>> 
>> _______________________________________________
>> seaside mailing list
>> 

> seaside at .squeakfoundation

>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> 
> 
> _______________________________________________
> seaside mailing list

> seaside at .squeakfoundation

> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside





--
View this message in context: http://forum.world.st/Seaside-function-onLoad-problematic-tp4924859p4925037.html
Sent from the Seaside General mailing list archive at Nabble.com.


More information about the seaside mailing list