嗨大家这是我的两个javascript.i的代码想要访问第一个javascript中定义的变量到另一个脚本。
1)
<script>
$(document).ready(function()
{
$('pre.codeguru').each(function()
{
var pre = this;
var form = $('form[name=sample]').clone();
$(form).removeAttr('name');
$(form).removeClass('hidden');
$($(form).find('textarea')[0]).val($(pre).text());
var id = $(pre).attr('id');
$(form).find('div textarea[name=code]').first().attr('id', id);
$(pre).replaceWith(form);
});
var editors = [];
$('textarea[name=codeguru]').each(function()
{
var editor = CodeMirror.fromTextArea(this,
{
lineNumbers: true,
matchBrackets: true,
mode: "application/x-httpd-perl",
tabMode: "shift"
});
editors.push(editor);
});
});
</script>
2)
<script type="text/javascript">
function execute() {
p5pkg.CORE.print = function(List__) {
var i;
for (i = 0; i < List__.length; i++) {
document.getElementById('print-result').value += p5str(List__[i])
}
return true;
};
p5pkg["main"]["v_^O"] = "browser";
p5pkg["main"]["Hash_INC"]["Perlito5/strict.pm"] = "Perlito5/strict.pm";
p5pkg["main"]["Hash_INC"]["Perlito5/warnings.pm"] = "Perlito5/warnings.pm";
var source = editor.getValue();
alert(source);
var pos = 0;
var ast;
var match;
document.getElementById('print-result').value = "";
try {
var start = new Date().getTime();
var js_source = p5pkg["Perlito5"].compile_p5_to_js([source]);
var end = new Date().getTime();
var time = end - start;
// run
start = new Date().getTime();
eval(js_source);
end = new Date().getTime();
time = end - start;
}
catch(err) {
//document.getElementById('log-result').value += "Error:\n";
}
}
</script>
现在我的问题是我想访问第一个javascript中定义的编辑器
var editors = [];
$('textarea[name=codeguru]').each(function()
{
var editor = CodeMirror.fromTextArea(this,
{
lineNumbers: true,
matchBrackets: true,
mode: "application/x-httpd-perl",
tabMode: "shift"
});
editors.push(editor);
});
在第二个javascript中。 任何人都有这个答案然后请帮助我这样做
答案 0 :(得分:2)
如果在定义变量时遗漏var,则可以全局访问。
所以
pre = this;
而不是
var pre = this;
会使每个功能都可以访问。
答案 1 :(得分:0)
我能想到的唯一方法是将变量作为变量传递给其他函数
function otherJavaFile.myFunction (myVariable);
或更改HTML中的变量,即自定义数据值,然后另一个脚本可以访问它。我不喜欢全局变量。
// Sheet 1
$("#myDiv").attr("data-variable",yourValue);
// Sheet 2
var secondVariable = $("#myDiv").attr("data-variable");
答案 2 :(得分:0)
哥们我对jquery感到不舒服...
我希望你期待同一个文档[窗口共享]上的iframes / frames。
基于我对Javascript DOM的了解,可以访问另一个文档中的一个文档中定义的变量。您必须按照DOM 2使用document.importNode(原始节点,如其他文档,boolean)方法。
为javacript代码执行类似的操作...
documentI(此处提供的原始变量/节点) - iframe.contentDocument.getElementsByTagName(/ Node的名称/)...
documentII(要在此克隆的节点) -
document.importNode(originalNode,真)
我希望这有效