diff options
Diffstat (limited to 'lisp/xwidget.el')
| -rw-r--r-- | lisp/xwidget.el | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/lisp/xwidget.el b/lisp/xwidget.el index c83ab3b1e48..aeae8d59453 100644 --- a/lisp/xwidget.el +++ b/lisp/xwidget.el | |||
| @@ -194,22 +194,26 @@ defaults to the string looking like a url around the cursor position." | |||
| 194 | (xwidget-resize xw (car size) (cadr size)))) | 194 | (xwidget-resize xw (car size) (cadr size)))) |
| 195 | 195 | ||
| 196 | 196 | ||
| 197 | (defvar xwidget-webkit-activeelement-js | 197 | (defvar xwidget-webkit-activeelement-js" |
| 198 | " | 198 | function findactiveelement(doc){ |
| 199 | function findactiveelement(myframes){ | 199 | //alert(doc.activeElement.value); |
| 200 | if(document.activeElement.value != undefined) | 200 | if(doc.activeElement.value != undefined){ |
| 201 | return document.activeElement; | 201 | return doc.activeElement; |
| 202 | for(i=0;i<myframes.length;i++){ | 202 | }else{ |
| 203 | if(myframes[i].document.activeElement.value != undefined) | 203 | // recurse over the child documents: |
| 204 | return myframes[i].document.activeElement; | 204 | var frames = doc.getElementsByTagName('frame'); |
| 205 | else{ | 205 | for (var i = 0; i < frames.length; i++) |
| 206 | if(myframes[i].frames.length > 0) | 206 | { |
| 207 | findactiveelement(myframes[i].frames); | 207 | var d = frames[i].contentDocument; |
| 208 | else | 208 | var rv = findactiveelement(d); |
| 209 | return; | 209 | if(rv != undefined){ |
| 210 | return rv; | ||
| 211 | } | ||
| 212 | } | ||
| 210 | } | 213 | } |
| 211 | } | 214 | return undefined; |
| 212 | } | 215 | }; |
| 216 | |||
| 213 | 217 | ||
| 214 | " | 218 | " |
| 215 | 219 | ||
| @@ -232,10 +236,10 @@ Argument STR string." | |||
| 232 | (field-value | 236 | (field-value |
| 233 | (progn | 237 | (progn |
| 234 | (xwidget-webkit-execute-script xww xwidget-webkit-activeelement-js) | 238 | (xwidget-webkit-execute-script xww xwidget-webkit-activeelement-js) |
| 235 | (xwidget-webkit-execute-script-rv xww "findactiveelement(frames).value")))) | 239 | (xwidget-webkit-execute-script-rv xww "findactiveelement(document).value;" )))) |
| 236 | (list xww | 240 | (list xww |
| 237 | (read-string "string:" field-value)))) | 241 | (read-string "string:" field-value)))) |
| 238 | (xwidget-webkit-execute-script xw (format "findactiveelement(frames).value='%s'" str))) | 242 | (xwidget-webkit-execute-script xw (format "findactiveelement(document).value='%s'" str))) |
| 239 | 243 | ||
| 240 | 244 | ||
| 241 | (defun xwidget-webkit-show-named-element (xw element-name) | 245 | (defun xwidget-webkit-show-named-element (xw element-name) |