diff options
author | hogelog | 2009-01-01 11:08:17 +0000 |
---|---|---|
committer | hogelog | 2009-01-01 11:08:17 +0000 |
commit | bb9f9df702dde21b8ec258121226c1abdfbf8589 (patch) | |
tree | 5846dfab7395762360ef1676acd2995cb5697c76 /scenario-actor.js | |
parent | d76a914c36ced77c6bcece7cc84a6d0e5910003b (diff) | |
download | vimperator-plugins-bb9f9df702dde21b8ec258121226c1abdfbf8589.tar.bz2 |
* change scenario directory $VIMPERATOR_HOME/plugin/scenario to $VIMPERATOR_HOME/scenario
* add funcs: set, get, saveLink
* load scenario/*.js as scenario file
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27736 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'scenario-actor.js')
-rw-r--r-- | scenario-actor.js | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/scenario-actor.js b/scenario-actor.js index 2751580..fc91ec9 100644 --- a/scenario-actor.js +++ b/scenario-actor.js @@ -86,7 +86,7 @@ const debugMode = true; const VariablesName = 'ScenarioActorVariables'; const VariablesLabelID = 'ScenarioActorVariablesLabelID'; -let SCENARIO_DIR = liberator.globalVariables.scenarioDir || 'plugin/scenario'; +let SCENARIO_DIR = liberator.globalVariables.scenarioDir || 'scenario'; var libly = liberator.plugins.libly; var $U = libly.$U; @@ -139,6 +139,19 @@ function ScenarioActor () { //{{{ }; setTimeout(f, 1); }, + get: function (dst, prop) { + let edst = self.eval({xpath: self.eval(dst)}); + if(!edst) throw [dst, prop]; + + return edst[prop]; + }, + set: function (dst, src, prop) { + let edst = self.eval({xpath: self.eval(dst)}); + if(!edst) throw [dst, src, prop]; + + edst[prop] = self.eval(src); + return edst[prop]; + }, xpath: function (xpath) { if((typeof xpath)!='string'||!win.document) throw [name, value]; return buffer.evaluateXPath(xpath, win.document).snapshotItem(0); @@ -172,6 +185,12 @@ function ScenarioActor () { //{{{ edst.parentNode.removeChild(edst); return edst; }, + saveLink: function (dst, skipPrompt) { + let edst = self.eval({xpath: self.eval(dst)}); + if(!edst) throw [dst, skipPrompt]; + buffer.saveLink(edst, skipPrompt); + return edst; + }, innerText: function (dst, src) { let edst = self.eval({xpath: self.eval(dst)}); if(!edst) throw [dst, src]; @@ -307,7 +326,7 @@ function ScenarioActor () { //{{{ }); }, loadLocalScenario: function(name) { - if(!name) name = '.'; + if(!name) name = '\.js$'; if(liberator.globalVariables.userScenario) loadedScenarioList.push(liberator.globalVariables.userScenario); @@ -346,8 +365,9 @@ function ScenarioActor () { //{{{ if(!url) return false; let matchfun = urlmatcher(url); scenarioList.forEach(function(scenario) { - if(matchfun(scenario)) + if(matchfun(scenario)) { context.eval({begin: scenario.action}); + } }); }, true); |