标签: script-tag

如何判断JavaScript文件是否已包含在ASP.NET页面中?

我有一个ASP.NET用户控件(.ascx文件).在这个用户控件中我想使用.js文件.

所以我<script src="file.js" type"text/javascript"></script>在页面上加入.

但是,有时我会在已加载此相同脚本的网页中使用此用户控件.

<script />如果页面尚未包含<script />同一脚本的另一个标记,我该如何添加将在页面上呈现的声明?

html javascript asp.net script-tag

13
推荐指数
2
解决办法
8081
查看次数

DOMDocument从HTML源中删除脚本标记

在这里使用@Alex的方法使用内置的DOMDocument从HTML文档中删除脚本标记.问题是,如果我有一个带有Javascript内容的脚本标记,然后是另一个链接到外部Javascript源文件的脚本标记,则不会从HTML中删除所有脚本标记.

$result = '
<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>
            hey
        </title>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script>
            alert("hello");
        </script>
    </head>
    <body>hey</body>
</html>
';

$dom = new DOMDocument();
if($dom->loadHTML($result))
{
    $script_tags = $dom->getElementsByTagName('script');

    $length = $script_tags->length;

    for ($i = 0; $i < $length; $i++) {
        if(is_object($script_tags->item($i)->parentNode)) {
            $script_tags->item($i)->parentNode->removeChild($script_tags->item($i));
        }
    }

    echo $dom->saveHTML();
}
Run Code Online (Sandbox Code Playgroud)

以上代码输出:

<html>
    <head>
        <meta charset="utf-8">
        <title>hey</title>
        <script>
        alert("hello");
        </script>
    </head>
    <body>
        hey
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

从输出中可以看出,只删除了外部脚本标记.有什么办法可以确保删除所有脚本标记吗?

php xss script-tag html-parsing domdocument

12
推荐指数
2
解决办法
9593
查看次数

如何知道动态创建的脚本标签已执行?

我正在动态创建脚本标记:

var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.charset = 'utf-8';
script.defer = true;
script.async = true;
script.text = 'some my javascript content here';
head.appendChild(script);

script.onload = function () {
    // this never get fired..
    debugger;
}
Run Code Online (Sandbox Code Playgroud)

如何在其他代码块中执行脚本时收到通知?也许有些事件?

谢谢!

javascript script-tag createelement

10
推荐指数
1
解决办法
1万
查看次数

不熟悉的Javascript语法/ hack

我正在仔细阅读一些消息来源,我看到了这一点

<script type="text/javascript" src="script/jquery/jquery.1.7.1.js">//]]>
</script>
<script type="text/javascript" src="script/swfobject_modified.js">//]]>
</script>
Run Code Online (Sandbox Code Playgroud)

以这种方式列出的头部中有十几个依赖项,//]]>每个脚本标记之后的目的是什么?

代码看起来有点旧,并设置为在compat中模拟IE7:

<meta http-equiv="X-UA-Compatible" content="IE=7" />
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
Run Code Online (Sandbox Code Playgroud)

真的很好奇,谢谢.

html formatting script-tag

10
推荐指数
1
解决办法
177
查看次数

模块是否阻止了使用 DOMContentLoaded 侦听器的需要?

document.addEventListener('DOMContentLoaded', () => { 

});
Run Code Online (Sandbox Code Playgroud)

我读到这个事件侦听器确保对于常规脚本,JS 不会引用尚未加载的节点。内容DOMContentLoaded 被触发执行)。

我还读过一个模块 DOMContentLoaded被触发之前被执行(由于defer它内置的属性)。

我使用的模块似乎不需要DOMContentLoaded监听器。我可以确认DOMContentLoaded他们不需要监听器来正确访问节点吗?

另外,我想不出如何测试这个,所以我在这里问。如果你知道我怎么做,请分享!

javascript script-tag deferred-loading

10
推荐指数
1
解决办法
364
查看次数

在<script>标签的src属性中使用通配符?

好的,愚蠢的问题,我不认为这是可能的,但是,我的.aspx页面顶部有这个标记......

<%--Third Party Libraries, Plugins, Extensions --%>
<script src="Libraries/Raphael/Raphael.js" type="text/javascript"></script>
<script src="AutoComplete/jquery.autocomplete.js" type="text/javascript"></script>    
<script src="Libraries/jQuery/1.4.2/jquery.js" type="text/javascript"></script>
<script src="Libraries/jQuery/UI/1.8.4/jquery.ui.core.js" type="text/javascript"></script>
<script src="Libraries/jQuery/UI/1.8.4/jquery.ui.widget.js" type="text/javascript"></script>
<script src="Libraries/jQuery/UI/1.8.4/jquery.ui.mouse.js" type="text/javascript"></script>
<script src="Libraries/jQuery/UI/1.8.4/jquery.ui.draggable.js" type="text/javascript"></script>
<script src="Libraries/jQuery/UI/1.8.4/jquery.ui.droppable.js" type="text/javascript"></script>    
Run Code Online (Sandbox Code Playgroud)

如果我可以用这个代替它,那不是很好吗...

<%--Third Party Libraries, Plugins, Extensions --%>
<script src="Libraries/Raphael/Raphael.js" type="text/javascript"></script>
<script src="AutoComplete/jquery.autocomplete.js" type="text/javascript"></script>    
<script src="Libraries/jQuery/1.4.2/jquery.js" type="text/javascript"></script>
<script src="Libraries/jQuery/UI/1.8.4/jquery.ui.*.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

即使用*as通配符.

显然,因为这是JS,我可以将所有这些脚本放入一个大脚本并加载,但我真的不喜欢这样做.

还有其他人有整理大量脚本参考的技巧吗?或者我们只是忍受它?

html javascript wildcard script-tag

9
推荐指数
1
解决办法
1万
查看次数

动态添加的脚本将不会执行

我正在动态添加github gist的脚本.如果我在页面加载之前将其添加到html,脚本将执行.但是如果我在加载后尝试将其添加到页面,它会将脚本添加到页面但不执行它.

以下是我将其添加到页面的方式

HTML

<div id="results"></div>
Run Code Online (Sandbox Code Playgroud)

使用Javascript

$('#results').click(function() {
    var script = document.createElement("script");
    script.type = "text/javascript";
    script.src = "https://gist.github.com/1265374.js?file=GetGists.js";
    document.getElementById('results').appendChild(script);
    console.log('script added');
});
Run Code Online (Sandbox Code Playgroud)

这是现场的例子

http://jsfiddle.net/guanome/JqB3g/3/

javascript script-tag

9
推荐指数
1
解决办法
1万
查看次数

Chrome切换到脚本的串行下载

有时(不是每次,但通常)当我在本地开发时,在成功下载了数百个JS文件后(看起来我们目前已经下载了1393个脚本),Chrome将从并行下载文件切换到串行下载.

服务器是节点,使用express和模块"serve-static".我正在使用Chrome 43.0.我正在使用节点0.12.2.我正在使用serve-static 1.9.3.这些文件都是使用常规脚本标记来请求的<script src="foobar.js"></script>.我怀疑这是Chrome问题,因为服务器响应不会更改.但浏览器请求也不会改变,只有他们的时间/顺序.

有任何想法吗?

在此输入图像描述 在此输入图像描述

编辑:鉴于此问题似乎是Chrome问题,我已在此处向Chromium提交了错误报告:https://code.google.com/p/chromium/issues/detail? can = 2& q = serial%20script%20downloading &colspec = ID%20Pri%20M%20Week%20ReleaseBlock%的20Cr%20Status%20Owner%20Summary%20OS%20Modified&ID = 500948&感谢= 500948& TS = 1434467876

javascript google-chrome script-tag node.js

8
推荐指数
1
解决办法
546
查看次数

为什么我的<script>标签不能从php文件中运行?(jQuery也参与其中)

这是我想要完成的.我有一个使用jQuery对PHP文件进行AJAX调用的表单.PHP文件与数据库交互,然后创建页面内容以作为AJAX响应返回; 即,该页面内容被写入$.ajax呼叫成功函数中的新窗口.作为PHP文件返回的页面内容的一部分,我有一个简单的HTML脚本标记,其中包含一个JavaScript文件.特别:

<script type="text/javascript" src="pageControl.js"></script>
Run Code Online (Sandbox Code Playgroud)

这不是在PHP中回应(虽然我已经尝试过),它只是html.pageControl.js与生成内容的php文件位于同一目录中.

无论我尝试什么,我似乎都无法将pageControl.js文件包含在内,或者在为响应AJAX调用成功而创建的新窗口中工作.我最终得到像"预期的对象"或未定义的变量之类的错误,这让我相信文件没有包含在内.如果我将JavaScript直接复制到PHP文件中,而不是将脚本标记与src一起使用,我可以使它工作.

这里有关于调用文件,php和jQuery AJAX之间的范围解析的东西吗?我将来希望以这种方式包含javascript文件,并希望了解我做错了什么.


再次问好:

我已经解决了这个问题,但仍然没有运气.我将尝试澄清我在做什么,也许这会带来一些想法.我根据要求提供了一些代码,以帮助澄清一些事情.

这是序列:

  1. 用户选择一些选项,然后单击表单上的提交按钮.
  2. 单击表单按钮由jQuery代码处理,如下所示:

    $(document).ready(function() {
      $("#runReport").click(function() {
    
        var report = $("#report").val();
        var program = $("#program").val();
        var session = $("#session").val();
        var students = $("#students").val();
    
        var dataString = 'report=' +report+ 
                         '&program=' +program+
                         '&session=' +session+
                         '&students=' +students;
    
        $.ajax({
            type: "POST",
            url: "process_report_request.php",
            cache: false,
            data: dataString,
            success: function(pageContent) {
                if (pageContent) {
                    $("#result_msg").addClass("successMsg")
                        .text("Report created.");
    
                    var windowFeatures = "width=800,menubar=yes,scrollbars=1,resizable=1,status=yes";
    
                    // open a new report window
                    var reportWindow = …
    Run Code Online (Sandbox Code Playgroud)

javascript php ajax jquery script-tag

7
推荐指数
1
解决办法
1万
查看次数

使用npm脚本将*.js和*.css注入index.html

我正在研究从gulp/grunt切换到仅使用npm脚本.但我真的无法解决如何从给定路径获取*.js和*.css并将其添加到index.html文件中.

我必须通过"index.js"文件添加它,还是可以做类似......

"scripts": {
 "inject": "inject src/app/*.js",
},
Run Code Online (Sandbox Code Playgroud)

然后它会将它添加到我的index.html中,我已经指定它...

/* inject:js */
Run Code Online (Sandbox Code Playgroud)

inject script-tag npm

7
推荐指数
1
解决办法
3403
查看次数