相关疑难解决方法(0)

为什么在使用document.write()编写<script>标记时将其拆分?

为什么有些网站(或提供客户端javascript代码的广告客户)采用了在通话中拆分<script>和/或</script>标记的技术document.write()

我注意到亚马逊也这样做了,例如:

<script type='text/javascript'>
  if (typeof window['jQuery'] == 'undefined') document.write('<scr'+'ipt type="text/javascript" src="http://z-ecx.images-amazon.com/images/G/01/javascripts/lib/jquery/jquery-1.2.6.pack._V265113567_.js"></sc'+'ript>');
</script>
Run Code Online (Sandbox Code Playgroud)

html javascript

263
推荐指数
5
解决办法
12万
查看次数

如何在javascript中附加<script> </ script>?

我需要使用childappend或jquery append()将一些标记内容附加到文档中.据我所知,这已被剥夺.谁知道怎么做?

javascript jquery append appendchild

90
推荐指数
5
解决办法
28万
查看次数

我可以通过jQuery创建脚本标记吗?

我想通过jQuery创建一个脚本标记.

我使用以下代码:

$("<body>").append("<script></script>");
Run Code Online (Sandbox Code Playgroud)

它不起作用.你会做什么来实现它?

javascript jquery

40
推荐指数
4
解决办法
6万
查看次数

如何将<script>元素添加到DOM并执行其代码?

我想在现有DOM中添加一个元素以运行javascript代码.

我用YUI做了这个:

var scriptNode = Y.Node.create('<script type="text/javascript" charset="utf-8">alert("Hello world!");<\/script>');
var headNode = Y.one('head');
headNode.append(scriptNode);
Run Code Online (Sandbox Code Playgroud)

它已成功添加到DOM但它不会给我提醒.

有人知道问题是什么吗?

html javascript

18
推荐指数
2
解决办法
5万
查看次数

如何将DOM元素脚本添加到head部分?

我想将DOM元素添加到HTML的head部分.jQuery不允许将DOM元素脚本添加到head部分,而是执行它们,参考.

我想添加script标签并在<head>部分内编写脚本.

var script = '<script type="text/javascript"> //function </script>'
$('head').append(script);
Run Code Online (Sandbox Code Playgroud)

有这样的功能.我试过jQuery和javascript \,但它不起作用.

请告诉我如何script通过jQuery或javascript 添加和写入头部.

我厌倦了javascript来添加DOM元素,但它不能.innerHTML()用于写入头部.我正在使用jQuery 2.0.3和jQuery UI 1.10.3.

我想将base64编码脚本添加到head部分.我使用的base64解码器JS喜欢这个解码JavaScript,然后戴上头部分.

//编辑
它会

$.getScript('base64.js');
var encoded = "YWxlcnQoImhpIik7DQo="; //More text
var decoded = decodeString(encoded);
var script = '<script type="text/javascript">' +decoded + '</script>';
$('head').append(script);
Run Code Online (Sandbox Code Playgroud)

使编码脚本和添加在一个JavaScript文件中.我想使用base64.js或其他一些解码器javascript文件供浏览器不接受atob().

html javascript jquery dom

15
推荐指数
5
解决办法
8万
查看次数

将html附加到jQuery元素而不在html中运行脚本

我编写了一些带有一串html的代码,并使用jQuery清除掉任何丑陋的HTML(请参阅此SO问题中的早期原型).它工作得很好,但我偶然发现了一个问题:

当使用.append()将html包装在div中时,代码中的所有脚本元素都会被评估并运行(请参阅此SO答案以解释为什么会发生这种情况).我不想要这个,我真的只是希望它们被删除,但我可以在以后自己处理它,只要它们没有运行.

我正在使用此代码:

var wrapper = $('<div/>').append($(html));
Run Code Online (Sandbox Code Playgroud)

我尝试这样做:

var wrapper = $('<div>' + html + '</div>');
Run Code Online (Sandbox Code Playgroud)

但是这只会在IE中引入append()函数修复的"拒绝访问"错误(请参阅上面引用的答案).

我想我可能能够重写我的代码,不需要围绕html包装,但我不确定,我想知道是否有可能在不运行脚本的情况下附加html,无论如何.

我的问题:

  • 如何在不运行脚本的情况下包装一段未知的html,最好完全删除它们?

  • 我是否应该将jQuery抛出窗口并使用纯JavaScript和DOM操作来执行此操作?那会有帮助吗?

我不想做的事:

我不是试图在客户端放置某种安全层.我非常清楚这是毫无意义的.

更新:詹姆斯的建议

詹姆斯建议我过滤掉脚本元素,但看看这两个例子(原始的第一个和詹姆斯的建议):

jQuery("<p/>").append("<br/>hello<script type='text/javascript'>console.log('gnu!'); </script>there")
Run Code Online (Sandbox Code Playgroud)

保留文本节点但写入gnu!

jQuery("<p/>").append(jQuery("<br/>hello<script type='text/javascript'>console.log('gnu!'); </script>there").not('script'))`
Run Code Online (Sandbox Code Playgroud)

不写gnu!,但也丢失了文本节点.

更新2:

詹姆斯已经更新了他的答案,我接受了.不过,请参阅我对他的回答的最新评论.

javascript jquery dom

13
推荐指数
1
解决办法
9980
查看次数

使用Objective-C进行JavaScript注入的方法

我正在寻找将JavaScript注入WebView(在Cocoa中)的不同方法.

我试图将一些javascript注入<head>已加载到WebView的HTML文件的标记中.

以下方法对我不起作用.它似乎只适用于非常简单的JavaScript,没有嵌套括号(来自我测试的):

[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"var script = document.createElement('script');"
                                                     "script.type = 'text/javascript';"
                                                     "script.text = \"some simple JavaScript"
                                                     "}\";"
                                                     "document.getElementsByTagName('head')[0].appendChild(script);"]];
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以使用更复杂的JavaScript/jQuery函数?

我试图注入的完整代码如下:

function submitFormForTime(time){
    $(\".t_h\").each(function(i, obj) {
        if ($(this).text() != time) return;
        $(this).parent().find(\"form\").each(function(i, obj){
            obj.submit();
        });
    });
}
Run Code Online (Sandbox Code Playgroud)

javascript iphone objective-c code-injection

12
推荐指数
1
解决办法
4323
查看次数

动态插入将通过Reactjs执行的脚本标记

关于这一点有很多答案,但我正在寻找特定于reactjs的东西

我的组件代码:

  render: function () {

    return (
      <Modal {...this.props} title="Embed on your own site!">
        <div className="modal-body">
          <div className="tm-embed-container" dangerouslySetInnerHTML={{__html: embedCode}}>
          </div>
          <textarea className="tm-embed-code" rows="4" wrap="on" defaultValue={embedCode}></textarea>
        </div>
      </Modal>
    );
  }
});
Run Code Online (Sandbox Code Playgroud)

脚本标记在页面上,但没有执行.我是否应该做出反应,只是使用好的'DOM脚本',正如其他答案所示?

reactjs react-jsx

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

动态添加的javascript与外部脚本不会被执行

所以这就是我们的场景......我们首先要做的是,我们附加一段javascript代码,将外部脚本添加到文档中,如下所示:

(function() {
     var e = document.createElement('script'); e.type = 'text/javascript'; e.async = true; e.src = 'http://blabla.com/script.js';
     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(e, s);
})();
Run Code Online (Sandbox Code Playgroud)

然后script.js发生以下情况:

function ajaxCall() { 
    //... some script to send ajax request which calls createDiv() after success
   if (window.XMLHttpRequest){
      xmlhttp=new XMLHttpRequest();
   }
   else{
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
   }
   xmlhttp.onreadystatechange=function(){
      if(xmlhttp.readyState==4&&xmlhttp.status==200){
         createDiv(xmlhttp.responseText);
      }
   };
   xmlhttp.open("GET","http://blabla.com/api/");
   xmlhttp.send(); 
}
function parseResponse(response) {
    var parser = new DOMParser();
    var dom = parser.parseFromString(response, "text/html");
    return dom;
}
function createDiv(responsetext)
{
   var dom = …
Run Code Online (Sandbox Code Playgroud)

html javascript dom

12
推荐指数
1
解决办法
3437
查看次数

Adsense在基于ajax的应用程序中?

如何在基于asp.net ajax/ajax的应用程序中添加adsense或其他广告?(例如ra-ajax样本页面)或GWT

创建iframe是一个可行的解决方案吗?

如下所述,放置adsense脚本很容易.但谷歌机器人将无法扫描我的基于ajax的页面,因为所有的内容都是javascript.不会有内容相关的广告.所以不能通过货币化.静态广告会很棒.任何想法/输入?

html ajax asp.net-ajax adsense

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