Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何设置可配置的外部Javascript代码?_Javascript - Fatal编程技术网

如何设置可配置的外部Javascript代码?

如何设置可配置的外部Javascript代码?,javascript,Javascript,我在一个外部文件中有一些Javascript代码,它将供人们在自己的网站上使用。。。所以我想让他们有办法通过多个选项。。。我该怎么做 对不起,更多信息: 我会让他们加载html+脚本+css: <div class="mywidget"></div> <script src="app.js"></script> <link rel="stylesheet" type="text/css" href="style.css

我在一个外部文件中有一些Javascript代码,它将供人们在自己的网站上使用。。。所以我想让他们有办法通过多个选项。。。我该怎么做

对不起,更多信息:

我会让他们加载html+脚本+css:

    <div class="mywidget"></div>
    <script src="app.js"></script>
    <link rel="stylesheet" type="text/css" href="style.css" />

所以我基本上希望他们能够自定义我的应用程序的工作方式。。。比如说,我希望他们自定义警报或其他任何数量的东西。

用jQuery的方法来完成。具有选项对象的参数,如果未传递,则默认为选项:

var yourFunc = function (options) {
    options = $.extend({
        prop1: 'default1',
        prop2: 'default2'
    }, options || {});

    // do stuff with options
};

如果不使用jQuery,可以轻松地存根
$。通过在属性上循环并在未定义的情况下替换它们来扩展

使用jQuery的方法。具有选项对象的参数,如果未传递,则默认为选项:

var yourFunc = function (options) {
    options = $.extend({
        prop1: 'default1',
        prop2: 'default2'
    }, options || {});

    // do stuff with options
};
如果不使用jQuery,您可以轻松地存根
$。通过在属性上循环并替换未定义的属性来扩展

标准解决方案(例如由jQuery使用)是在函数(或配置函数)中只接收一个作为参数的参数,作为映射处理:

   func veryFreeFunction(opts) {
      opts = opts || {}; 
      var a = opts.a || "default_a";
      var b = opts.b || "default_b";
      ...
   }
在这种情况下,用户可以调用
veryFreeFunction()
veryFreeFunction({b:“test”})。他将只传递他需要的参数

标准解决方案(例如jQuery使用)是在函数(或配置函数)中仅接收一个作为参数的参数,并作为映射处理:

   func veryFreeFunction(opts) {
      opts = opts || {}; 
      var a = opts.a || "default_a";
      var b = opts.b || "default_b";
      ...
   }

在这种情况下,用户可以调用
veryFreeFunction()
veryFreeFunction({b:“test”})。他将只传递他需要的参数

我认为这类事情的标准是将JSON对象传递到库的静态函数或对象构造函数中,然后将输入参数与库的默认参数合并

例如:

// Your library
function myLibObj(options){
    var default_options = {
         opt_1: "abc",
         opt_2: "def"
    };

    // Merge options
    $.extend(default_options, options);
}

var newObj = new myLibObj({opt_1: "ghi"});
// Now in this newObj, the options will look like {opt_1: "ghi", opt_2: "def"}

我相信这类事情的标准是将JSON对象传递到库的静态函数或对象构造函数中,然后将输入参数与库的默认参数合并

例如:

// Your library
function myLibObj(options){
    var default_options = {
         opt_1: "abc",
         opt_2: "def"
    };

    // Merge options
    $.extend(default_options, options);
}

var newObj = new myLibObj({opt_1: "ghi"});
// Now in this newObj, the options will look like {opt_1: "ghi", opt_2: "def"}

一种方法是外部文件查找脚本标记本身中的配置块:

   <script type="text/javascript" src="myfile.js">
    var mySettings = {
            instanceName: 'homepage',
            cfg: {
                containerId: 'homepage-slide',
                columnsCount: 6,
                placeholder: true,
            }
    }

    </script>

var mySettings={
instanceName:“主页”,
cfg:{
containerId:“主页幻灯片”,
专栏作家:6,
占位符:对,
}
}

一种方法是外部文件查找脚本标记本身中的配置块:

   <script type="text/javascript" src="myfile.js">
    var mySettings = {
            instanceName: 'homepage',
            cfg: {
                containerId: 'homepage-slide',
                columnsCount: 6,
                placeholder: true,
            }
    }

    </script>

var mySettings={
instanceName:“主页”,
cfg:{
containerId:“主页幻灯片”,
专栏作家:6,
占位符:对,
}
}

这是非常模糊的。这是人们应该调用的函数吗?你可以让它接受一个配置对象。是的,请添加详细信息--“外部文件”。。。外部的什么?你是说这是“外部”而不是“内联”吗?这是在web应用程序的上下文中执行的吗?您是否通过电子邮件将javascript发送给人们,以便他们可以将其插入到正在查看的页面中?你说的可配置是什么意思?通过什么样的选项?听起来您可能正在分发一个脚本,该脚本依赖于为脚本提供参数(或选项)的配置文件。如果我们不知道从哪里开始,我们就帮不上忙……目前的解决方案非常简单:使用参数。如果编写
doStuff:function(text){alert(text);}
则任何人都可以调用
doStuff('foo')。这是非常模糊的。这是人们应该调用的函数吗?你可以让它接受一个配置对象。是的,请添加详细信息--“外部文件”。。。外部的什么?你是说这是“外部”而不是“内联”吗?这是在web应用程序的上下文中执行的吗?您是否通过电子邮件将javascript发送给人们,以便他们可以将其插入到正在查看的页面中?你说的可配置是什么意思?通过什么样的选项?听起来您可能正在分发一个脚本,该脚本依赖于为脚本提供参数(或选项)的配置文件。如果我们不知道从哪里开始,我们就帮不上忙……目前的解决方案非常简单:使用参数。如果编写
doStuff:function(text){alert(text);}
则任何人都可以调用
doStuff('foo')一个“JSON对象”?JSON是一种序列化规范。JSON对象应该是字符串。嗯。。。我想他指的是“javascript对象”。。。在javascript中说JSON有点多余,除非你真的在解析JSON字符串并用它创建JSO,“JSON对象”?JSON是一种序列化规范。JSON对象应该是字符串。嗯。。。我想他指的是“javascript对象”。。。在javascript中说JSON有点多余,除非你真的在解析JSON字符串并用它创建JSO;在
src
属性的情况下,代码不会运行。我认为他的意思是,如果标签有一个src元素,默认情况下,标签中的javascript将不会被解析和执行。我基本上是说,除非您获取里面的代码并
eval
它,否则这将不起作用。请注意,您必须自己解析代码;代码不会在
src
属性的情况下运行。我认为他的意思是,如果标记有一个src元素,默认情况下不会解析和执行标记中的javascript。我基本上是说,除非您获取其中的代码并
eval
它,否则这将无法工作。jQuery只是以最令人敬畏的方式做事情,不是吗?jQuery只是以最棒的方式做事情,不是吗?你最接近我想要的东西。。。不过我选择了一些不同的东西。你最接近我要找的东西。。。我用了一些不同的东西