Javascript 如何将一个脚本的结果输入另一个脚本?
我在这里的方式超过我的头,需要一些帮助,以了解我在看什么,请!(对Javascript来说非常陌生!)以下是我理解的情况 我有一个脚本正在从一段文本中选择一行,当前生成此警报,其中“1”是所选行:Javascript 如何将一个脚本的结果输入另一个脚本?,javascript,Javascript,我在这里的方式超过我的头,需要一些帮助,以了解我在看什么,请!(对Javascript来说非常陌生!)以下是我理解的情况 我有一个脚本正在从一段文本中选择一行,当前生成此警报,其中“1”是所选行: alert(getLine("sourcePara", 1)); …我不需要触发警报,而是需要将此选定文本输入到单独的脚本中,该脚本正在将数据发送到另一个浏览器窗口。目前,它从id为“STOCK1”的表单中获取一个文本字段,但可以替换为: function sendLog() { var m
alert(getLine("sourcePara", 1));
…我不需要触发警报,而是需要将此选定文本输入到单独的脚本中,该脚本正在将数据发送到另一个浏览器窗口。目前,它从id为“STOCK1”的表单中获取一个文本字段,但可以替换为:
function sendLog() {
var msg = document.getElementById('STOCK1').value;
t.send('STK1', msg);
}
我完全搞不清楚第一个脚本中的文本数据是什么形式的,不知道如何将其作为第二个脚本的源调用。。。救命啊
谢谢大家
编辑:
下面是本地连接元素的源代码
function LocalConnection(options) {
this.name = 'localconnection';
this.id = new Date().getTime();
this.useLocalStorage = false;
this.debug = false;
this._actions= [];
this.init = function(options) {
try {
localStorage.setItem(this.id, this.id);
localStorage.removeItem(this.id);
this.useLocalStorage = true;
} catch(e) {
this.useLocalStorage = false;
}
for (var o in options) {
this[o] = options[o];
}
this.clear();
}
this.listen = function() {
if (this.useLocalStorage) {
if (window.addEventListener) {
window.addEventListener('storage', this.bind(this, this._check), false);
} else {
window.attachEvent('onstorage', this.bind(this, this._check));
}
} else {
setInterval(this.bind(this, this._check), 100);
}
}
this.send = function(event) {
var args = Array.prototype.slice.call(arguments, 1);
return this._write(event, args);
}
this.addCallback = function(event, func, scope) {
if (scope == undefined) {
scope = this;
}
if (this._actions[event] == undefined) {
this._actions[event] = [];
}
this._actions[event].push({f: func, s: scope});
}
this.removeCallback = function(event) {
for (var e in this._actions) {
if (e == event) {
delete this._actions[e];
break;
}
}
}
this._check = function() {
var data = this._read();
if (data.length > 0) {
for (var e in data) {
this._receive(data[e].event, data[e].args);
}
}
}
this._receive = function(event, args) {
if (this._actions[event] != undefined) {
for (var func in this._actions[event]) {
if (this._actions[event].hasOwnProperty(func)) {
this.log('Triggering callback "'+event+'"', this._actions[event]);
var callback = this._actions[event][func];
callback.f.apply(callback.s, args);
}
}
}
};
this._write = function(event, args) {
var events = this._getEvents();
var evt = {
id: this.id,
event: event,
args: args
};
events.push(evt);
this.log('Sending event', evt);
if (this.useLocalStorage) {
localStorage.setItem(this.name, JSON.stringify(events));
} else {
document.cookie = this.name + '=' + JSON.stringify(events) + "; path=/";
}
return true;
}
this._read = function() {
var events = this._getEvents();
if (events == '') {
return false;
}
var ret = [];
for (var e in events) {
if (events[e].id != this.id) {
ret.push({
event: events[e].event,
args: events[e].args
});
events.splice(e, 1);
}
}
if (this.useLocalStorage) {
localStorage.setItem(this.name, JSON.stringify(events));
} else {
document.cookie = this.name + '=' + JSON.stringify(events) + "; path=/";
}
return ret;
}
this._getEvents = function() {
return this.useLocalStorage ? this._getLocalStorage() : this._getCookie();
}
this._getLocalStorage = function() {
var events = localStorage.getItem(this.name);
if (events == null) {
return [];
}
return JSON.parse(events);
}
this._getCookie = function() {
var ca = document.cookie.split(';');
var data;
for (var i=0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1, c.length);
}
if (c.indexOf(this.name+'=') == 0) {
data = c.substring(this.name.length+1, c.length);
break;
}
}
data = data || '[]';
return JSON.parse(data);
}
this.clear = function() {
if (this.useLocalStorage) {
localStorage.removeItem(this.name);
} else {
document.cookie = this.name + "=; path=/";
}
}
this.bind = function(scope, fn) {
return function () {
fn.apply(scope, arguments);
};
}
this.log = function() {
if (!this.debug) {
return;
}
if (console) {
console.log(Array.prototype.slice.call(arguments));
}
}
this.init(options);
}
函数本地连接(选项){
this.name='localconnection';
this.id=new Date().getTime();
this.useLocalStorage=false;
this.debug=false;
这是._actions=[];
this.init=函数(选项){
试一试{
setItem(this.id,this.id);
localStorage.removietem(this.id);
this.useLocalStorage=true;
}捕获(e){
this.useLocalStorage=false;
}
for(选项中的var o){
此[o]=选项[o];
}
这个.clear();
}
this.listen=函数(){
if(this.useLocalStorage){
if(window.addEventListener){
window.addEventListener('storage',this.bind(this,this.\u check),false);
}否则{
window.attachEvent('onstorage',this.bind(this,this._check));
}
}否则{
setInterval(this.bind(this,this.\u check),100);
}
}
this.send=函数(事件){
var args=Array.prototype.slice.call(参数,1);
返回此。\u写入(事件,参数);
}
this.addCallback=函数(事件、函数、范围){
如果(范围==未定义){
范围=此;
}
如果(此._操作[事件]==未定义){
此._操作[事件]=[];
}
此.u操作[event].push({f:func,s:scope});
}
this.removeCallback=函数(事件){
for(本操作中的变量e){
if(e==事件){
删除此项;
打破
}
}
}
这个。_check=函数(){
var data=此值。_read();
如果(data.length>0){
for(数据中的var e){
此.u接收(数据[e]。事件,数据[e]。args);
}
}
}
此._receive=函数(事件,参数){
如果(此._操作[事件]!=未定义){
for(此操作[事件]中的var func){
if(this._actions[event].hasOwnProperty(func)){
this.log('触发回调'+event+'',this._actions[event]);
var callback=this._actions[event][func];
callback.f.apply(callback.s,args);
}
}
}
};
此._write=函数(事件,参数){
var events=this._getEvents();
var evt={
id:this.id,
事件:事件,,
args:args
};
事件推送(evt);
此.log('发送事件',evt);
if(this.useLocalStorage){
setItem(this.name,JSON.stringify(events));
}否则{
document.cookie=this.name+'='+JSON.stringify(事件)+“路径=/”;
}
返回true;
}
这是。_read=function(){
var events=this._getEvents();
如果(事件==''){
返回false;
}
var-ret=[];
for(事件中的var e){
if(events[e].id!=this.id){
后推({
事件:事件[e]。事件,
args:events[e]。args
});
事件。拼接(e,1);
}
}
if(this.useLocalStorage){
setItem(this.name,JSON.stringify(events));
}否则{
document.cookie=this.name+'='+JSON.stringify(事件)+“路径=/”;
}
返回ret;
}
这是。_getEvents=function(){
返回this.useLocalStorage?this.\u getLocalStorage():this.\u getCookie();
}
这是。_getLocalStorage=function(){
var events=localStorage.getItem(this.name);
如果(事件==null){
返回[];
}
返回JSON.parse(事件);
}
这是。_getCookie=function(){
var ca=document.cookie.split(“;”);
var数据;
对于(变量i=0;i
如果我正确理解您的要求,那么我认为将日志功能更改为以下内容是一个问题:
function sendLog() {
t.send('STK1', getLine("sourcePara", 1));
}
这假设getLine
是全局可访问的
或者另一种方法是允许
sendLog(getLine("sourcePara", 1));
function sendLog(msg) {
t.send('STK1', msg);
}