aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhogelog2009-01-01 11:08:17 +0000
committerhogelog2009-01-01 11:08:17 +0000
commitbb9f9df702dde21b8ec258121226c1abdfbf8589 (patch)
tree5846dfab7395762360ef1676acd2995cb5697c76
parentd76a914c36ced77c6bcece7cc84a6d0e5910003b (diff)
downloadvimperator-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
-rw-r--r--scenario-actor.js26
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);