PC v MAC webdialog populate
-
A few Safari questions:
Does Safari automatically keep it's WebKit up to date?
Did you ask your testers what WebKit version their Safari was using?
Still wondering if this behaviour is a WebKit bug...
-
They are such a varied and clueless bunch they almost certainly won't know - I can't press it as they have helped above and beyond the call of duty already.
-
I'll have a look over the weekend. I have access to both PC and Mac.
-
Well, the next alternative is to post in the WebKit Bugzilla, and see if they fix it or tell you it's the way they want it to work.
-
@thomthom said:
I'll have a look over the weekend. I have access to both PC and Mac.
ThomThom do me a favour, please.
On the Mac.. check the console output of:
RUBY_VERSION
%(#BF0000)[RUBY_PATCHLEVEL
RUBY_RELEASE_DATE]
RUBY_DESCRIPTIONI wish to know what their output is for the "out-of-the-box" OSX Sketchup.
Also wonder if they changed between ver 6.x and 7.x SU ?? -
@dan rathbun said:
On the Mac.. check the console output of:
RUBY_VERSION
%(#BF0000)[RUBY_PATCHLEVEL
RUBY_RELEASE_DATE]
RUBY_DESCRIPTIONMac Mini Intel - OSX 10.5
` > PLATFORM
i686-darwin8.10.1RUBY_VERSION
1.8.5
RUBY_PATCHLEVEL
Error: #<NameError: (eval): uninitialized constant RUBY_PATCHLEVEL>
(eval)
RUBY_RELEASE_DATE
2006-08-25
RUBY_DESCRIPTION
Error: #<NameError: (eval): uninitialized constant RUBY_DESCRIPTION>
(eval)` -
TIG: I I tried with a simple sample file. This works on both Explorer and Webkit:
<html> <head> <title>Checkbox Test</title> <script type="text/javascript"> window.onload = init; function $(id) { return document.getElementById(id); } function init() { $('ch1').onclick = function() { $('ch2').checked = this.checked; $('ch3').checked = this.checked; $('ch4').checked = this.checked; $('ch2').disabled = !this.checked; $('ch3').disabled = !this.checked; $('ch4').disabled = !this.checked; }; } </script> </head> <body> <p> <label for="ch1">Checkbox 1</label> <input type="checkbox" id="ch1" /> </p> <fieldset> <p> <label for="ch2">Checkbox 2</label> <input type="checkbox" id="ch2" disabled="disabled" /> </p> <p> <label for="ch3">Checkbox 3</label> <input type="checkbox" id="ch3" disabled="disabled" /> </p> <p> <label for="ch4">Checkbox 4</label> <input type="checkbox" id="ch4" disabled="disabled" /> </p> </fieldset> </body> </html>
I tested on PC IE8 and OSX 10.5 SU7.1 Webkit
-
Thomthom - thanks for the example - so it appears that the embedded js solution works consistently but the ruby run-script with .setAttribute() etc doesn't - it's weird ?
I have tested it on my PC and it needed a tweak to do what I actually wanted - here's a version that sets only the first nested checkbox checked when the main one is checked [they all become enabled] - the other two nested checkboxes remain unchecked until you click on them - on unchecking the main one all of the nested ones are unchecked and disabled as required...<html> <head> <title>Checkbox Test</title> <script type="text/javascript"> window.onload = init; function $(id) { return document.getElementById(id); } function init() { $('ch1').onclick = function() { $('ch2').checked = this.checked; if (!this.checked) val = this.checked else val = !this.checked $('ch3').checked = val; $('ch4').checked = val; $('ch2').disabled = !this.checked; $('ch3').disabled = !this.checked; $('ch4').disabled = !this.checked; }; } </script> </head> <body> <p> <label for="ch1">Checkbox 1</label> <input type="checkbox" id="ch1" /> </p> <fieldset> <p> <label for="ch2">Checkbox 2</label> <input type="checkbox" id="ch2" disabled="disabled" /> </p> <p> <label for="ch3">Checkbox 3</label> <input type="checkbox" id="ch3" disabled="disabled" /> </p> <p> <label for="ch4">Checkbox 4</label> <input type="checkbox" id="ch4" disabled="disabled" /> </p> </fieldset> </body> </html>
All it needs now is some auto-value setting when a checkbox is changed so that these can be read out into Sketchup when needed...
-
@tig said:
Thomthom - thanks for the example - so it appears that the embedded js solution works consistently but the ruby run-script with .setAttribute() etc doesn't - it's weird ?
Your Ruby script calls a JS method that use setAttribute?
Why not just.checked
? I didn't try setAttribute at all, aschecked
seemed to work on all platforms. -
@tig said:
All it needs now is some auto-value setting when a checkbox is changed so that these can be read out into Sketchup when needed...
// Make all checkbox's values reflect their checked state. var inputs = document.getElementsByTagName('input'); for ( i=0; i < inputs.length; i++ ) { input = inputs[i]; if ( input.getAttribute('type') == 'checkbox' ) { input.onchange = update_checkbox; input.onclick = update_checkbox; // for IE input.onkeyup = update_checkbox; // for IE } } } function update_checkbox() { this.value = this.checked.toString(); this.title = this.checked.toString(); }
-
hm.... that did not work under IE...
-
Updated the post.
That should work.
NOTE! the onChange event triggers in IE when the input looses focus - so I attached the same event handler to onClick and onKeyUp to force immediate update. But if you use the this snippet with the other example the two onClick events will override each other and only one will trigger. You'd need to attach the event instead to make both event handlers work.
Advertisement