Javascript 提供赢得';t中断客户端';s页

Javascript 提供赢得';t中断客户端';s页,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,我已经启动了一个脚本,我需要向我的客户提供它。他们的想法是在他们的网页上放一行代码,我的脚本为他们做它所需要的。(在本例中,它所做的只是将内容加载到div中;一个带有链接的图像) 因此..客户放入一个和一个脚本标记,指向以下内容: if (!window.jQuery) { var jq = document.createElement('script'); jq.type = 'text/javascript'; jq.src = "//ajax.googleapis.com/

我已经启动了一个脚本,我需要向我的客户提供它。他们的想法是在他们的网页上放一行代码,我的脚本为他们做它所需要的。(在本例中,它所做的只是将内容加载到div中;一个带有链接的图像)

因此..客户放入一个
和一个脚本标记,指向以下内容:

if (!window.jQuery) {
    var jq = document.createElement('script'); jq.type = 'text/javascript';
    jq.src = "//ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js";
    document.getElementsByTagName('head')[0].appendChild(jq);
}

if ($('#name_of_div').length) {
        $('#name_of_div').load('[content url]');
    };
}
我很确定这大概是我想要的,但是,我一直在读一些关于“永远不要做全局性的事情”的东西,以及一些关于将这些东西放在函数中,这样它就不会侵犯页面的DOM。。我有这个权利吗

我想我可以用一个函数来保证我自己的作用域……但我还应该采取什么其他步骤来确保我的脚本在包含到其他人的页面中时不会阻塞或弄乱任何已经存在的内容

其次,使用jquery.load()还是使用简单的iframe更好


谢谢

将代码放入函数是隔离它的一步。下一步是将其放入匿名文件中。考虑这一点:

(function () {
    if (!window.jQuery) {
        var jq = document.createElement('script'); jq.type = 'text/javascript';
        jq.src = "//ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js";
        document.getElementsByTagName('head')[0].appendChild(jq);
    }

    if ($('#name_of_div').length) {
        $('#name_of_div').load('[content url]');
    }
})();
这个函数之外的任何东西都看不到它的内部,所以它不会污染全局范围。(例如,请确保不要在该函数中的
窗口
对象上创建值。)该函数被创建并立即执行(请注意末尾的括号),允许它只做自己的事情并被执行

如果需要进行进一步的交互,例如为用户公开API,则可以从该函数返回API对象。大概是这样的:

var yourAPI = (function () {
    var someAPIFunction = function () {
        // some piece of functionality a user may call later
    };

    return {
        someAPIFunction = someAPIFunction
    };
})();

现在,用户可以创建
yourAPI
对象,并将其放在他想要的任何范围内。它只公开您希望它公开的内容,其余的内部工作只需在页面加载时执行并完成一次。

我认为这更适合您