我只需执行
即可创建脚本 jQuery.getScript('hi.js').done(function(script){ /*script is a plain text */})
正如我们所见,"已完成"的参数是"脚本",但它只是加载脚本的文本。但是我需要访问元素本身!如果我想将其ID设置为" helloScript"?
,该怎么办?在vanilla js中,我可以这样做:
var script = document.createElement("script");
script.type = "text/javascript";
script.src = url;
script.setAttribute('id', 'helloScript'); // <----------------------- this!
document.getElementsByTagName("head")[0].appendChild(script);
但是我想知道如何在jQuery中执行此操作?
答案 0 :(得分:2)
既然你不能(遗憾地)用jQuery做到这一点,你可以不这样做,这比你在问题中的做法简单得多:
// create script tag
var s = document.createElement('script');
// set script attributes
s.async = 1;
s.src = [whatever];
// inject to DOM
document.head.appendChild(s);
我认为可以知道注入了哪个脚本然后改变它的属性,但它似乎没有用。我将进一步研究jQuery github。似乎是关于这个问题的讨论here。
似乎它可以在jQuery版本3.2.0
中使用,并且可以这样工作:
$.ajax({
dataType : "script",
url : "https://some/path",
attrs : { nonce: "EDNnf03nceIOfn39fn3e9h3sdfa" },
});
答案 1 :(得分:0)
看起来.getScript()
提供了访问它创建的元素的方法,但你可以利用jQuery来简化你的vanilla方法:
$('<script>')
.attr('id', 'helloScript')
.attr('src', url)
.appendTo('head');
编辑:在使用jQuery创建和附加脚本时,我似乎无法找到运行脚本onload事件的方法,所以如果你需要,你可能需要去Vanilla JS路线。
答案 2 :(得分:-1)
在脚本元素中调用 var image = bitmapImage.ImageTo24bpp();
//convert image to bytes[]
ImageConverter imgCon = new ImageConverter();
var bytes= (byte[])imgCon.ConvertTo(image, typeof(byte[]));
//save to filename
File.WriteAllBytes(fname,bytes);
。
public void SaveAsImageTo24bpp( Image img,string fname)
{
var bmp = new Bitmap(img.Width, img.Height, PixelFormat.Format24bppRgb);
using (var gr = Graphics.FromImage(bmp))
gr.DrawImage(img, new Rectangle(0, 0, img.Width, img.Height));
ImageConverter imgCon = new ImageConverter();
var bytes = (byte[])imgCon.ConvertTo(bmp, typeof(byte[]));
File.WriteAllBytes(fname,bytes);
}
attr
没有元素。