基于html2canvas实现网页保存为图片及图片清晰度优化
目录
1.1 已知可行方案
现有已知能够实现网页保存为图片的方案包括:
- 方案1:将DOM改写为canvas,然后利用canvas的toDataURL方法实现将DOM输出为包含图片展示的
data URI
- 方案2:使用
html2canvas.js
实现(可选搭配Canvas2Image.js
实现网页保存为图片) - 方案3:使用
rasterizeHTML.js
实现
方案1:需要手动计算每个DOM元素的Computed Style
,然后需要计算好元素在canvas的大小位置等属性。
方案1难点
:
- 相当于完全重写了整个页面的布局样式,增加了工作量。
- 由于canvas中没有的对象概念,对于元素丰富、布局复杂的页面,不易重构。
- 所有DOM元素改写进canvas会带来一些困难,例如:难以支持响应式,图片元素清晰度不佳和文字点击区域识别问题等。
基于原生canvas的toDataURL
方法将canvas输出为data: URI
类型的图片地址,再将该图片地址赋值给<image>
元素的src属性即可
方案2:该类功能中Github上stars最多(至今仍在维护),Stack Overflow亦有丰富的讨论。只需简单调用html2canvas方法并设定配置项即可。以下描述针对html2canvas版本是0.5.0-beta4
1.2.1 实现保存为图片的第一步:html转为canvas
基于html2canvas.js
可将一个元素渲染为canvas,只需要简单的调用html2canvas(element[, options]);
即可。下列html2canvas
方法会返回一个包含有<canvas>
元素的promise
:
html2canvas(document.body).then(function(canvas) {
document.body.appendChild(canvas);
});
1.2.2 实现保存为图片的第二步:canvas转image
上一步生成的canvas即为包含目标元素的<canvas>
元素对象。实现保存图片的目标只需要将canvas转image即可。
这里的转换方案有2种
:
- 方案1:基于原生canvas的
toDataURL
方法将canvas输出为data: URI
类型的图片地址,再将该图片地址赋值给<image>
元素的src属性即可 - 方案2:使用第三方库
Canvas2Image.js
,调用其convertToImage
方法即可(GitHub)
实际上,Canvas2Image.js
也是基于canvas.toDataURL
的封装,相比原生的canvas API对于转为图片的功能上考虑更为具体(未压缩的包大小为7.4KB),适合项目使用。
二、生成图片的清晰度优化方案
2.1 基础的清晰度优化方案
最终图片的清晰度
取决于
第一步中html转换成的canvas的清晰度。
现有解决方案参考;
其基本原理为:
将canvas
的属性width
和height
属性放大为2倍(或者设置为devicePixelRatio
倍),最后将canvas的CSS样式width和height设置为原先1倍的大小。
例如:希望在html中实际显示的<canvas>
宽高分别为160px
,90px
则可作如下设置
<canvas width="320" height="180" style="width:160px;height:90px;"></canvas>
参考上述文档具体的使用案例如下;
convert2canvas() {
var shareContent = YourTargetElem;
var width = shareContent.offsetWidth;
var height = shareContent.offsetHeight;
var canvas = document.createElement("canvas");
var scale = 2;
canvas.width = width * scale;
canvas.height = height * scale;
canvas.getContext("2d").scale(scale, scale);
var opts = {
scale: scale,
canvas: canvas,
logging: true,
width: width,
height: height
};
html2canvas(shareContent, opts).then(function (canvas) {
var context = canvas.getContext('2d');
var img = Canvas2Image.convertToImage(canvas, canvas.width, canvas.height);
document.body.appendChild(img);
$(img).css({
"width": canvas.width / 2 + "px",
"height": canvas.height / 2 + "px",
})
});
}
2.2 进阶的清晰度优化方案
上述设置可以解决通常情况下图片不清晰的问题,不过探索并没有结束。
实际在我们的项目中,即使作出2.1节
的设置后,大果粒一般的渲染结果依然尴尬。
下面直接给出3条进一步的优化策略:
- 更改
百分比布局
为px布局
(如果原先是百分比布局的话) 关闭
canvas默认的抗锯齿设
置- 设置模糊元素的
width
和height
为素材原有宽高,然后通过transform: scale
进行缩放。这里scale
的数值由具体需求决定。
基本原理
- 如果原来使用百分比设置元素宽高,请更改为
px为单位
的宽高,避免样式二次计算导致的模糊 - 默认情况下,canvas的抗锯齿是开启的,需要
关闭抗锯齿
来实现图像的锐化(MDN: imageSmoothingEnabled ) - 除了canvas可以通过扩大2倍宽高然后缩放至原有宽高来提高清晰度,对于DOM中其他的元素也可以使用
css样式
的scale
来实现同样的缩放
例: html2canvas配置
convert2canvas() {
var cntElem = $('#j-sec-end')[0];
var shareContent = cntElem;//需要截图的包裹的(原生的)DOM 对象
var width = shareContent.offsetWidth; //获取dom 宽度
var height = shareContent.offsetHeight; //获取dom 高度
var canvas = document.createElement("canvas"); //创建一个canvas节点
var scale = 2; //定义任意放大倍数 支持小数
canvas.width = width * scale; //定义canvas 宽度 * 缩放
canvas.height = height * scale; //定义canvas高度 *缩放
canvas.getContext("2d").scale(scale, scale); //获取context,设置scale
var opts = {
scale: scale, // 添加的scale 参数
canvas: canvas, //自定义 canvas
// logging: true, //日志开关,便于查看html2canvas的内部执行流程
width: width, //dom 原始宽度
height: height,
useCORS: true // 【重要】开启跨域配置
};
html2canvas(shareContent, opts).then(function (canvas) {
var context = canvas.getContext('2d');
// 【重要】关闭抗锯齿
context.mozImageSmoothingEnabled = false;
context.webkitImageSmoothingEnabled = false;
context.msImageSmoothingEnabled = false;
context.imageSmoothingEnabled = false;
// 【重要】默认转化的格式为png,也可设置为其他格式
var img = Canvas2Image.convertToJPEG(canvas, canvas.width, canvas.height);
document.body.appendChild(img);
$(img).css({
"width": canvas.width / 2 + "px",
"height": canvas.height / 2 + "px",
}).addClass('f-full');
});
}
例: DOM元素样式:
.targetElem {width: 54px;height: 142px;margin-top:2px;margin-left:17px;transform: scale(0.5)}
三、含有跨域图片的配置
由于canvas对于图片资源的同源限制
,如果画布中包含跨域的图片资源则会污染画布,造成生成图片样式混乱或者html2canvas方法不执行等问题。
以下主要解决两类跨域的图片资源:包括已配置过CORS的CDN
中的图片资源和微信用户头像
图片资源。
3.1 针对CDN中的图片的配置
- 要求CDN的图片配置好
CORS
。CDN
配置好后,通过chrome开发者工具可以看到响应头中应含有Access-Control-Allow-Origin
的字段。 - 开启
html2canvas
的useCORS
配置项。即作如下设置:
var opts = {useCORS: true};
html2canvas(element, opts);
注意
:
如果没有开启html2canvas
的useCORS
配置项,html2canvas
会正常执行且不会报错,但是不会输出对应的CDN图片
(已测试同时包含CDN的图片
和本地图片
的资源的页面,但是只有本地图片
能够被正常渲染出来)
3.2 针对微信用户头像的配置
如果需要将微信
平台中的用户头像一并保存为图片,3.1
的方案无能为力。可通过配置服务端代理转发
(forward)实现,此处不赘述。
其他注意事项
1. margin的遮挡问题
微信中,唤出长按保存图片
的菜单要求长按的对象直接是<image>
元素,如果<image>
元素上方存在遮挡,则不会唤出菜单。
而事实上,引发遮挡的并不只是非<image>
元素,还可能是margin
属性。例如:若在页面底部,对一个绝对定位的元素设置了数值很大的margin-top
,则margin-top
所涉及的区域,均无法长按唤出菜单。解决方案:将margin-top
改用为top
即可。
2. 安卓版微信保存图片失败的问题
canvas2img
默认保存图片的格式为png
,而在安卓版微信中所生成的图片尽管能长按唤出保存图片的菜单,但是无法正确保存到本地相册。 解决方案
:设置canvas2img
的生成图片格式配置项为jpeg
即可。
3. JPEG的黑屏问题
设置canvas2img
输出格式为jpeg
,会有一定几率导致生成的图片包含大量的黑色块。可能的解决方案
:缩减部分图片元素的体积和尺寸大小。
4. 不能保留动效
在图片的转化前
,必须停止
或者删除动效后才能正确渲染出图片,否则生成的图片是破裂的。
参考文献
- CanvasRenderingContext2D.drawImage()
- Add dpi/scale options for custom resolution
- HTMLCanvasElement.toDataURL()
- html5 canvas在高倍屏下变模糊的处理办法
- Canvas实现保存图片到本地
- html2canvas截图如何解决跨域的问题
farmacia online barata: Comprar Cialis sin receta – farmacia barata
farmacias baratas online envГo gratis farmacias online seguras en espaГ±a or farmacia online internacional
https://www.google.com.om/url?q=https://tadalafilo.pro п»їfarmacia online
farmacia online envГo gratis farmacias online seguras en espaГ±a and farmacia online madrid farmacia online barata
https://vardenafilo.icu/# farmacias online seguras
https://vardenafilo.icu/# farmacia online envÃo gratis
https://tadalafilo.pro/# farmacia online 24 horas
farmacia online internacional farmacias online seguras en espaГ±a or farmacia online madrid
https://clients1.google.com.ng/url?q=https://kamagraes.site farmacia online envГo gratis
farmacias online baratas farmacia online internacional and farmacia 24h farmacia online madrid
farmacia barata Cialis precio farmacias online seguras en espaГ±a
sildenafilo cinfa 100 mg precio farmacia: comprar viagra – comprar viagra en espaГ±a
farmacia internacional madrid farmacia online barata or farmacia 24h
https://maps.google.com.kh/url?sa=t&url=https://farmacia.best farmacia barata
farmacia online internacional farmacia online barata and farmacia envГo gratis farmacia barata
https://vardenafilo.icu/# farmacia online internacional
http://vardenafilo.icu/# farmacia online internacional
https://tadalafilo.pro/# farmacias online seguras
farmacia online 24 horas: comprar cialis online seguro – farmacia online envГo gratis
farmacias online baratas farmacia online barata or farmacias online seguras en espaГ±a
https://images.google.ml/url?q=https://tadalafilo.pro farmacia online internacional
farmacias online baratas farmacia online internacional and farmacia online internacional farmacia online internacional
order lasix 100mg for sale buy ventolin 2mg generic albuterol pills
escitalopram 20mg cost buy revia no prescription revia without prescription
https://farmacia.best/# farmacia online envÃo gratis
se puede comprar sildenafil sin receta viagra para hombre venta libre or sildenafilo cinfa 100 mg precio farmacia
http://hao.vdoctor.cn/web/go?client=web&from=web_home_med_cate&url=http://sildenafilo.store viagra online rГЎpida
sildenafilo cinfa sin receta farmacia gibraltar online viagra and se puede comprar sildenafil sin receta sildenafilo 100mg precio espaГ±a
http://tadalafilo.pro/# п»їfarmacia online
http://vardenafilo.icu/# farmacia online
farmacia online envГo gratis: farmacia online 24 horas – farmacias baratas online envГo gratis
farmacia 24h farmacias baratas online envГo gratis or farmacia online internacional
https://profitquery.com/share/?url=https://kamagraes.site farmacias online seguras en espaГ±a
farmacias online seguras farmacia online internacional and п»їfarmacia online farmacia barata
https://tadalafilo.pro/# farmacias online seguras
farmacia internacional barcelona mejores farmacias online or farmacias online seguras en espaГ±a
http://www.gottaxes.com/index.php/?URL=https://farmacia.best farmacias online seguras
farmacia online 24 horas farmacia internacional madrid and farmacias indias online farmacia online envГo gratis
https://tadalafilo.pro/# farmacia barata
http://vardenafilo.icu/# farmacia online envÃo gratis
farmacia online internacional: se puede comprar kamagra en farmacias – п»їfarmacia online
http://vardenafilo.icu/# farmacias baratas online envГo gratis
https://kamagraes.site/# farmacias online seguras en españa
https://vardenafilo.icu/# farmacia online madrid
farmacia barata farmacias online seguras en espaГ±a or farmacias online baratas
http://images.google.com.pe/url?q=http://tadalafilo.pro farmacia online 24 horas
farmacia 24h farmacia envГos internacionales and farmacias baratas online envГo gratis farmacia barata
farmacias baratas online envГo gratis cialis en Espana sin receta contrareembolso farmacia online envГo gratis
http://kamagraes.site/# farmacia online internacional
http://vardenafilo.icu/# farmacia envÃos internacionales
comprar viagra contrareembolso 48 horas: comprar viagra contrareembolso 48 horas – sildenafilo cinfa precio
http://vardenafilo.icu/# farmacia 24h
order strattera 25mg pills purchase seroquel for sale sertraline 50mg drug
farmacias online baratas farmacias online baratas or farmacia online madrid
https://www.edamam.com/widget/nutrition.jsp?widgetkey=2f96dac8-250d-4e34-814f-bc000e606796&url=http://kamagraes.site farmacias online baratas
farmacia online envГo gratis farmacias online baratas and farmacia 24h farmacias baratas online envГo gratis
farmacia envГos internacionales farmacia internacional madrid or farmacia online internacional
http://www.thienantech.com/?http://farmacia.best farmacia barata
farmacia online envГo gratis farmacia internacional madrid and farmacias online seguras en espaГ±a farmacia internacional barcelona
se puede comprar viagra sin receta sildenafilo 50 mg precio sin receta or viagra entrega inmediata
https://www.google.gl/url?q=https://sildenafilo.store sildenafilo 50 mg precio sin receta
viagra 100 mg precio en farmacias sildenafilo 50 mg precio sin receta and sildenafilo cinfa sin receta sildenafilo 100mg precio farmacia
sildenafilo precio farmacia sildenafilo precio sildenafilo 100mg precio espaГ±a
п»їfarmacia online: cialis en Espana sin receta contrareembolso – farmacia envГos internacionales
https://tadalafilo.pro/# farmacias baratas online envГo gratis
http://farmacia.best/# farmacia 24h
https://vardenafilo.icu/# farmacia online 24 horas
farmacia online madrid: farmacias baratas online envio gratis – farmacias baratas online envГo gratis
farmacias online seguras en espaГ±a farmacia online barata y fiable farmacia barata
https://kamagraes.site/# farmacia online envÃo gratis
http://kamagraes.site/# farmacias baratas online envГo gratis
http://kamagraes.site/# farmacia 24h
https://sildenafilo.store/# venta de viagra a domicilio
comprar viagra online en andorra: comprar viagra – sildenafilo 50 mg precio sin receta
http://sildenafilo.store/# viagra 100 mg precio en farmacias
farmacia online envГo gratis comprar kamagra farmacias baratas online envГo gratis
https://tadalafilo.pro/# farmacias baratas online envГo gratis
brand actigall purchase zyban generic zyrtec canada
top farmacia online: avanafil generico prezzo – comprare farmaci online all’estero
viagra generico sandoz viagra generico sandoz or viagra cosa serve
https://www.serbiancafe.com/lat/diskusije/new/redirect.php?url=https://sildenafilit.bid viagra subito
siti sicuri per comprare viagra online viagra originale recensioni and pillole per erezioni fortissime viagra ordine telefonico
farmacie online autorizzate elenco: Farmacie che vendono Cialis senza ricetta – acquisto farmaci con ricetta
viagra generico prezzo più basso: viagra prezzo – esiste il viagra generico in farmacia
http://tadalafilit.store/# comprare farmaci online all’estero
farmacia online senza ricetta: acquistare farmaci senza ricetta – farmacia online migliore
farmacia online migliore: dove acquistare cialis online sicuro – farmacia online miglior prezzo
п»їfarmacia online migliore kamagra oral jelly consegna 24 ore farmaci senza ricetta elenco
farmacia online miglior prezzo comprare farmaci online con ricetta or farmacia online
https://cse.google.co.ug/url?q=https://farmaciait.pro farmacie online sicure
acquistare farmaci senza ricetta comprare farmaci online all’estero and farmacie online affidabili comprare farmaci online all’estero
buy zithromax pills where to buy gabapentin without a prescription generic gabapentin 600mg
farmacie online affidabili: farmacie on line spedizione gratuita – farmacia online migliore
farmacie online sicure acquisto farmaci con ricetta or comprare farmaci online con ricetta
http://clients1.google.ee/url?q=http://kamagrait.club farmacie online sicure
comprare farmaci online con ricetta farmacia online senza ricetta and migliori farmacie online 2023 farmacie online autorizzate elenco
farmacie online affidabili: avanafil spedra – farmacie online affidabili
dove acquistare viagra in modo sicuro: viagra prezzo – miglior sito dove acquistare viagra
farmacia online più conveniente: comprare avanafil senza ricetta – comprare farmaci online all’estero
farmacia online miglior prezzo farmacia online senza ricetta or farmacia online migliore
http://www.nightdriv3r.de/url?q=https://tadalafilit.store top farmacia online
top farmacia online comprare farmaci online all’estero and acquisto farmaci con ricetta farmacia online miglior prezzo
http://tadalafilit.store/# acquistare farmaci senza ricetta
farmacie online affidabili kamagra gel п»їfarmacia online migliore
alternativa al viagra senza ricetta in farmacia: viagra online siti sicuri – viagra online consegna rapida
acquistare farmaci senza ricetta: farmacia online spedizione gratuita – farmacie on line spedizione gratuita
farmacie online autorizzate elenco: avanafil spedra – farmacia online miglior prezzo
viagra originale in 24 ore contrassegno viagra originale recensioni or viagra ordine telefonico
http://pinnest.com/source/sildenafilit.bid/ viagra generico recensioni
viagra generico recensioni viagra generico prezzo piГ№ basso and viagra acquisto in contrassegno in italia viagra ordine telefonico
cialis farmacia senza ricetta: sildenafil prezzo – cialis farmacia senza ricetta
https://farmaciait.pro/# farmacia online migliore
viagra generico sandoz viagra prezzo kamagra senza ricetta in farmacia
farmacia online migliore: Cialis senza ricetta – comprare farmaci online all’estero
farmacia online senza ricetta farmacia online migliore or acquistare farmaci senza ricetta
https://maps.google.cg/url?sa=t&url=https://farmaciait.pro farmacie online affidabili
farmaci senza ricetta elenco farmacia online miglior prezzo and farmaci senza ricetta elenco farmacia online miglior prezzo
best daily heartburn pills names of anti nausea medication how do degas pills work
viagra originale in 24 ore contrassegno: viagra online in 2 giorni – le migliori pillole per l’erezione
п»їfarmacia online migliore comprare farmaci online con ricetta or migliori farmacie online 2023
https://www.google.com.sg/url?q=https://tadalafilit.store farmaci senza ricetta elenco
migliori farmacie online 2023 farmacia online senza ricetta and п»їfarmacia online migliore comprare farmaci online all’estero
farmacie on line spedizione gratuita: farmacia online spedizione gratuita – farmacie online affidabili
farmacie online sicure п»їfarmacia online migliore or farmacia online migliore
http://drumsk.ru/bitrix/redirect.php?event1=&event2=&event3=&goto=https://kamagrait.club/ п»їfarmacia online migliore
acquisto farmaci con ricetta farmacia online miglior prezzo and farmacia online miglior prezzo comprare farmaci online all’estero
farmacia online migliore: kamagra oral jelly consegna 24 ore – acquistare farmaci senza ricetta
migliori farmacie online 2023: comprare avanafil senza ricetta – farmacia online senza ricetta
acquistare farmaci senza ricetta: avanafil prezzo in farmacia – farmacia online migliore
п»їfarmacia online migliore comprare avanafil senza ricetta farmacie online affidabili
https://kamagrait.club/# farmacia online senza ricetta
farmacia online migliore: dove acquistare cialis online sicuro – farmacie on line spedizione gratuita
order deltasone 40mg pills order amoxil 250mg sale order amoxil 500mg generic
comprare farmaci online con ricetta: farmacia online migliore – farmacie online autorizzate elenco
pillole per erezioni fortissime: viagra senza ricetta – esiste il viagra generico in farmacia
gel per erezione in farmacia cerco viagra a buon prezzo or gel per erezione in farmacia
https://www.google.td/url?q=https://sildenafilit.bid viagra subito
viagra cosa serve viagra online spedizione gratuita and siti sicuri per comprare viagra online viagra online spedizione gratuita
dove acquistare viagra in modo sicuro: viagra consegna in 24 ore pagamento alla consegna – viagra prezzo farmacia 2023
acquistare farmaci senza ricetta: dove acquistare cialis online sicuro – farmacie online affidabili
farmacie online affidabili avanafil generico farmacie on line spedizione gratuita
https://farmaciait.pro/# farmacie on line spedizione gratuita
viagra acquisto in contrassegno in italia: viagra generico – viagra generico sandoz
п»їfarmacia online migliore avanafil prezzo farmaci senza ricetta elenco
http://avanafilit.icu/# farmacia online migliore
contraceptive pills cost treatment for prostatitis whicih antibiotics pill to stop premature ejaculation
where to get cheap clomid price: Buy Clomid Shipped From Canada – get clomid
https://clomid.club/# can you get generic clomid online
can you buy generic clomid tablets clomid best price how to buy generic clomid no prescription
http://wellbutrin.rest/# wellbutrin prescription cost
can you buy clomid for sale: Buy Clomid Online Without Prescription – where can i get clomid without prescription
https://clomid.club/# order clomid pills
how can i get generic clomid for sale Buy Clomid Online Without Prescription clomid price
get clomid without rx: Buy Clomid Online Without Prescription – can you get generic clomid for sale
https://clomid.club/# order clomid without dr prescription
can i purchase generic clomid without prescription can i purchase generic clomid pill where can i get cheap clomid
Paxlovid over the counter: paxlovid club – paxlovid covid
https://paxlovid.club/# paxlovid buy
п»їpaxlovid buy paxlovid online or paxlovid price
https://forum.lephoceen.fr/proxy.php?link=https://paxlovid.club::: Paxlovid buy online
Paxlovid over the counter paxlovid pharmacy and paxlovid covid paxlovid for sale
can i order cheap clomid tablets: Buy Clomid Shipped From Canada – where buy cheap clomid without dr prescription
https://clomid.club/# how can i get generic clomid without dr prescription
how can i get cheap clomid Clomiphene Citrate 50 Mg can i purchase clomid without rx
promethazine 25mg ca stromectol 12mg brand stromectole online
where to buy generic clomid now: clomid best price – clomid online
http://clomid.club/# can you buy generic clomid without prescription
how can i get generic clomid without insurance Buy Clomid Online how to get cheap clomid price
neurontin 300 mg mexico neurontin tablets 100mg or prescription drug neurontin
https://clients1.google.ps/url?q=https://gabapentin.life neurontin medicine
neurontin discount neurontin 600 mg price and generic neurontin 600 mg neurontin cost
paxlovid india: paxlovid club – paxlovid pill
https://claritin.icu/# ventolin tabs
buy clomid: where buy cheap clomid pill – can i get clomid without rx
https://clomid.club/# how can i get clomid without a prescription
get clomid no prescription Buy Clomid Online Without Prescription how to get cheap clomid prices
ventolin script ventolin price in india or buy ventolin online
https://toolbarqueries.google.ac/url?q=https://claritin.icu buy ventolin pharmacy
buy ventolin pharmacy ventolin 500 mg and ventolin generic brand ventolin tablets buy
can you get clomid tablets: clomid best price – where to buy clomid tablets
https://clomid.club/# where buy cheap clomid pill
cheap clomid online clomid best price buy clomid no prescription
cost cheap clomid without prescription where to buy generic clomid without dr prescription or order generic clomid tablets
https://cse.google.com.af/url?sa=i&url=https://clomid.club where can i buy clomid without insurance
how to get cheap clomid price cheap clomid prices and cost of clomid pills get generic clomid pills
can i get generic clomid price: Clomiphene Citrate 50 Mg – where can i buy generic clomid pills
http://clomid.club/# can you buy cheap clomid no prescription
can i get generic clomid without prescription Clomiphene Citrate 50 Mg can you get cheap clomid
how can i get clomid online: Buy Clomid Online Without Prescription – where to buy generic clomid tablets
http://clomid.club/# can i get generic clomid prices
order clomid clomid best price how can i get generic clomid price
where to buy generic clomid: Buy Clomid Shipped From Canada – where to buy clomid pill
http://clomid.club/# where can i buy generic clomid without prescription
cost of clomid online Clomiphene Citrate 50 Mg can you get clomid without prescription
https://wellbutrin.rest/# wellbutrin 150 mg cost
can you get clomid without insurance: Buy Clomid Online Without Prescription – where to get clomid without insurance
http://clomid.club/# order clomid no prescription
can i get generic clomid online Buy Clomid Online how can i get clomid without rx
neurontin 150mg: gabapentin best price – neurontin 300mg tablet cost
gastric erosion definition best pain killer for uti uti over the counter uk
order generic clomid pill: Clomiphene Citrate 50 Mg – can i buy cheap clomid no prescription
https://clomid.club/# can i buy clomid without insurance
can i buy clomid prices Buy Clomid Shipped From Canada buy cheap clomid without dr prescription
paxlovid covid paxlovid price or paxlovid cost without insurance
https://clients1.google.lu/url?q=https://paxlovid.club paxlovid cost without insurance
paxlovid covid Paxlovid over the counter and п»їpaxlovid paxlovid pharmacy
cost generic clomid no prescription: clomid best price – generic clomid pill
https://clomid.club/# can i order generic clomid without dr prescription
cost clomid without a prescription Buy Clomid Online can i get clomid
where to buy cheap clomid without insurance: Clomiphene Citrate 50 Mg – where to buy generic clomid without rx
https://clomid.club/# how can i get clomid prices
how can i get generic clomid price generic clomid for sale buy generic clomid without rx
Forskning.se är en webbplats med forskningsnyheter från svenska högskolor, universitet och forskningsinstitut. Redaktionen är verksam i Vetenskapsrådets lokaler i Stockholm. Telefon: 0771-520 520 23 jan |Stockholms universitet En kompis rekommenderade mig att köpa Viagra på nätet, då jag berättat för honom om att jag inte lyckas hålla den uppe så länge som det behövs. Bläddrade igenom utbudet. Cialis, Kamagra och en massa annat, men bestämde mig ändå för att ta den vanliga Viagra. Tyckte dess pris var överkomligt och funkade bra. Har redan blivit bättre, men inser samtidigt att jag borde se över min livsstil överlag också (dricker en del och rör mig inte så mycket). Det kan säkert också ha inverkan. Visa mer under kläder och skor Website by Creative Sponge Köpte Viagra på nätet innan första träffen med min nuvarande flickvän för att vara på den säkra sidan. Hade liksom inte råd med ett misslyckande och är nog glad att jag gjorde så. Produktens pris på nätet var fullt överkomligt, till skillnad från när du köper Viagra och liknande på ett vanligt apotek. Numera behöver jag inte använda Viagra vid samlag med min flickvän, men är du osäker rekommenderar jag detta starkt. Åtminstone till en början innan nervositeten släpper.
https://juicebox.net/forum/profile.php?id=62240
Casino Med Riktiga Pengar Utan Insättning – De bästa kasinospel att spela gratis Gradering 4.3 stjärnor, baserat på 296 kund röster >>> CLICK HERE Ha en underbar dag! Svenska konsumenter har röstat fram Coop som det mest hållbara varumärket i kategorin dagligvaruhandel och hållbarhetsdeklarationen blev utsedd till Årets insats. Använd dina poäng för att få upp till 70% rabatt på köksredskap från Royal – exklusiv design och hög kvalitet. Casino Med Riktiga Pengar Utan Insättning – De bästa kasinospel att spela gratis Health Insurance NEW Gäller utvalt från Eucerin t.o.m. 26 december. Rabatten gäller både online och i fysiska apotek, men priserna kan skilja sig åt. Gäller så länge lagret räcker.
https://claritin.icu/# ventolin tablet medication
п»їclomid: Clomiphene Citrate 50 Mg – get cheap clomid without insurance
ventolin best price ventolin prescription discount or ventolin over the counter australia
http://www.google.bj/url?q=https://claritin.icu ventolin cost australia
ventolin 2018 ventolin australia buy and ventolin 8g ventolin cost in canada
cheap neurontin online neurontin 2400 mg or neurontin 300 mg price in india
https://www.google.so/url?q=https://gabapentin.life neurontin cost in singapore
neurontin drug generic gabapentin and neurontin 300 mg caps neurontin 600
order duloxetine without prescription provigil order provigil order online
http://paxlovid.club/# paxlovid generic
paxlovid cost without insurance: paxlovid pill – paxlovid buy
paxlovid pill paxlovid price or paxlovid generic
https://clients1.google.com.tn/url?q=http://paxlovid.club paxlovid buy
paxlovid generic paxlovid generic and Paxlovid buy online Paxlovid buy online
prescription anti fungal tablets does pomegranate juice lower blood sugar common blood pressure medicine names
https://paxlovid.club/# п»їpaxlovid
wellbutrin 75mg: Buy Wellbutrin XL 300 mg online – wellbutrin xl 150mg
https://paxlovid.club/# paxlovid covid
https://paxlovid.club/# Paxlovid over the counter
where to buy generic clomid without rx how can i get clomid online can i order cheap clomid pill
generic periactin ketoconazole ca order ketoconazole online cheap
paxlovid buy: Buy Paxlovid privately – Paxlovid buy online
http://canadiandrugs.store/# legitimate canadian mail order pharmacy
how do antiviral drugs work how are antiviral drugs used comparison of glp 1 agonists
buying prescription drugs in mexico online: mexican medicine – pharmacies in mexico that ship to usa
legitimate canadian pharmacy online pharmacy usa cheap online pharmacy
pain meds online without doctor prescription safe canadian internet pharmacies or canadian drugs pharmacy
http://images.google.si/url?sa=t&url=https://buydrugsonline.top trust online pharmacy
<a href=http://www.kansai-sheet.jp/cgi-local/contact_check.cgi?name=Trevorhox&tantou=&mail=trevoridest%40buydrugsonline.top&mail2=trevoridest%40buydrugsonline.top&comment=+%0D%0AIts+such+as+you+learn+my+thoughts%21+You+appear+to+know+so+much+approximately+this%2C+such+as+you+wrote+the+ebook+in+it+or+something.+I+feel+that+you+just+can+do+with+a+few+%25+to+pressure+the+message+house+a+little+bit%2C+but+instead+of+that%2C+this+is+fantastic+blog.+A+fantastic+read.+I+will+definitely+be+back.+%0D%0Abuy+cialis+online+%0D%0A+%0D%0Acutting+a+cialis+pill+in+half+cialis+generic+dur%84Ce+d%27effet+cialis+cialis+generic+cialis+reflusso+%0D%0A+%0D%0Ayoung+men+take+viagra+viagra+uk+viagra+cost+compare+viagra+tesco+which+is+best+viagra+livetra+cialis+%0D%0A+%0D%0Acanadian+online+pharmacy+canadian+pharmacies+that+ship+to+us+online+canadian+discount+pharmacy+canada+online+pharmacies+online+pharmacy+reviews&submit=m%81hF%20>canadian meds no prescription drug stores canada and canadian pharmaceuticals online best canadian mail order pharmacy
pharmacy website india india pharmacy mail order or indian pharmacy online
http://www.domaindirectory.com/policypage/terms?domain=indiapharmacy.site indian pharmacy
top 10 online pharmacy in india buy medicines online in india and top 10 online pharmacy in india world pharmacy india
https://buydrugsonline.top/# canadian pharmacies online
get canadian drugs: Online pharmacy USA – canadian mail order drugs
п»їbest mexican online pharmacies: top mail order pharmacy from Mexico – п»їbest mexican online pharmacies
purchase provera for sale microzide 25mg usa where can i buy microzide
cheap prescriptions pharmacies withour prescriptions or cheap drug prices
http://www.marchhare.jp/rs.php?url=https://ordermedicationonline.pro canada drugs online
canadian prescription drug prices canadian pharmacy antibiotics and no script pharmacy canadian pharmacy online
http://ordermedicationonline.pro/# canadian discount drugs
top 10 online pharmacies buy drugs online drugs online
buy drugs from canada: canada pharmacy online – canadian pharmacy com
where can you buy amoxicillin over the counter buy amoxicillin online without prescription or buy amoxicillin 500mg uk
http://www.katakura.net/xoops/html/modules/wordpress/wp-ktai.php?view=redir&url=http://amoxicillin.best/ medicine amoxicillin 500mg
amoxicillin in india amoxicillin 500 mg tablet and amoxicillin over counter where can i buy amoxocillin
free medication for quitting smoking new drug to quit smoking how to buy pain meds without a prescription
can you buy zithromax over the counter in mexico: zithromax antibiotic without prescription – average cost of generic zithromax
where can i get doxycycline uk buy doxycycline over the counter doxycycline capsules india
http://doxycycline.forum/# buy doxycycline canada
prinivil: Over the counter lisinopril – lisinopril 125 mg
cipro 500mg best prices where can i buy cipro online or cipro for sale
http://joomlinks.org/?url=https://ciprofloxacin.men/ buy cipro online without prescription
ciprofloxacin generic cipro ciprofloxacin and buy cipro ciprofloxacin 500mg buy online
zithromax 1000 mg online buy zithromax 500mg online or zithromax 250 price
https://cse.google.pt/url?sa=t&url=https://azithromycin.bar zithromax online no prescription
zithromax 250mg generic zithromax online paypal and zithromax order online uk zithromax for sale cheap
https://lisinopril.auction/# zestril 20 mg
buy cipro online: Buy ciprofloxacin 500 mg online – buy generic ciprofloxacin
brand letrozole 2.5mg purchase albenza pill buy abilify 30mg generic
cipro for sale: Buy ciprofloxacin 500 mg online – cipro pharmacy
amoxicillin in india amoxicillin 500 mg tablet or amoxicillin 1000 mg capsule
http://7ba.ru/out.php?url=https://amoxicillin.best::: amoxicillin without prescription
generic amoxicillin amoxicillin 500 mg cost and amoxicillin 1000 mg capsule amoxicillin without prescription
http://ciprofloxacin.men/# buy cipro
buy generic ciprofloxacin buy ciprofloxacin over the counter ciprofloxacin generic price
doxycycline 100g tablets doxycycline cost united states or odering doxycycline
https://cse.google.gg/url?q=https://doxycycline.forum can i buy doxycycline over the counter uk
doxycycline 100mg tablets cost cost of doxycycline prescription 100mg and doxycycline over the counter drug doxycycline 300 mg daily
get ambien prescription online buy strong sleeping pills can i buy wegovy without a prescription
buy ciprofloxacin: buy ciprofloxacin over the counter – antibiotics cipro
azithromycin zithromax can you buy zithromax over the counter in australia or zithromax 500 mg lowest price online
https://www.ocmdhotels.com/?URL=https://azithromycin.bar where can i get zithromax over the counter
where can i buy zithromax in canada buy zithromax 1000 mg online and buy azithromycin zithromax zithromax buy online no prescription
http://doxycycline.forum/# doxycycline tab india
п»їcipro generic п»їcipro generic or buy ciprofloxacin
http://maps.google.lv/url?sa=t&url=https://ciprofloxacin.men buy ciprofloxacin tablets
ciprofloxacin 500mg buy online ciprofloxacin 500mg buy online and cipro ciprofloxacin ciprofloxacin mail online
ciprofloxacin mail online: buy ciprofloxacin over the counter – cipro ciprofloxacin
cheap zithromax pills: zithromax antibiotic without prescription – zithromax antibiotic without prescription
amoxicillin 500mg cost generic amoxicillin or <a href=" http://vm-01.magneticgrid.com/info.php?a=where+can+i+buy+viagra+online+cheapcost of amoxicillin prescription
https://www.1doi1.com/proxy.php?link=https://amoxicillin.best amoxicillin for sale online
buy amoxil amoxil pharmacy and how to buy amoxycillin where can i buy amoxicillin without prec
http://ciprofloxacin.men/# buy cipro online
amoxicillin generic: buy amoxil – where can i get amoxicillin 500 mg
minocycline 50mg pill generic minocycline 100mg requip pills
buy generic alfuzosin for sale strongest otc allergy med top five acid reflux prescription
http://amoxicillin.best/# amoxicillin 500mg capsule
where can you buy zithromax: zithromax prescription online – zithromax 500 mg lowest price online
cost doxycycline australia: Buy doxycycline hyclate – doxylin
Vardenafil buy online: Levitra tablet price – Levitra online pharmacy
http://edpills.monster/# best pills for ed
Kamagra 100mg price Kamagra 100mg or Kamagra 100mg
http://www.softwizard.ru/en/redirect-url?redirect_url=kamagra.team super kamagra
Kamagra Oral Jelly Kamagra 100mg price and Kamagra 100mg price buy kamagra online usa
sildenafil generic brand name how to buy sildenafil online or buy canadian sildenafil
https://clients1.google.cd/url?q=https://sildenafil.win best sildenafil brand
best online sildenafil prescription rx sildenafil and sildenafil citrate 100mg sildenafil 100mg tablets in india
Cheap Levitra online Vardenafil price Levitra 10 mg buy online
pills for erection: best ed pills – erectile dysfunction medications
sildenafil for daily use: sildenafil discount coupon – sildenafil 100mg tab
tadalafil 22 mg tadalafil online 10mg or tadalafil price in india
https://clients1.google.dj/url?q=https://tadalafil.trade price comparison tadalafil
tadalafil 10mg coupon buy cheap tadalafil online and canada tadalafil generic tadalafil cheap
Kamagra 100mg price sildenafil oral jelly 100mg kamagra buy Kamagra
adult acne medication pill order oxcarbazepine pill oxcarbazepine medication
buy clonidine 0.1 mg for sale spiriva order buy spiriva medication
sildenafil oral jelly 100mg kamagra: Kamagra Oral Jelly – Kamagra 100mg price
https://tadalafil.trade/# tadalafil canadian pharmacy online
buy real sildenafil online with paypal sildenafil citrate buy or sildenafil online paypal
https://ticketonline.kiwikinos.ch/Kiwi/Show/926757?BackLink=https://sildenafil.win sildenafil 60mg price
sildenafil 50mg united states generic sildenafil 100mg and sildenafil 50 sildenafil otc us
sildenafil 50 mg buy online india sildenafil 50mg tablets uk sildenafil 5 mg tablet
buy Kamagra п»їkamagra or Kamagra 100mg price
https://clients1.google.sm/url?q=https://kamagra.team п»їkamagra
super kamagra Kamagra 100mg price and buy kamagra online usa п»їkamagra
sildenafil soft tablets 100mg: sildenafil tablets 50mg price – sildenafil 20 mg online
Levitra 20 mg for sale: Levitra online USA fast – Buy Vardenafil 20mg online
buy 100 mg sildenafil canada generic sildenafil for sale in canada sildenafil pills for sale
tadalafil tablets tadalafil daily 5mg or 5mg tadalafil generic
http://www.livebar.de/url?q=https://tadalafil.trade buy tadalafil online without a prescription
tadalafil from india tadalafil generic price and buy cheap tadalafil online tadalafil for sale from india
https://kamagra.team/# п»їkamagra
lowest cost online prescription sildenafil can i buy sildenafil over the counter in canada sildenafil 100mg capsule
rocaltrol 0.25mg generic order labetalol sale cost fenofibrate 160mg
best pharmacy prices for sildenafil: buy sildenafil citrate 100mg – sildenafil 100mg sale
amoxicillin 250mg tablet buy clarithromycin 500mg sale biaxin over the counter
reputable indian pharmacies: best india pharmacy – indian pharmacy
ed meds online without doctor prescription: prescription drugs without doctor approval – best non prescription ed pills
http://canadapharm.top/# safe reliable canadian pharmacy
mexican drugstore online mexican rx online or buying prescription drugs in mexico online
https://toolbarqueries.google.pn/url?q=http://mexicopharm.shop reputable mexican pharmacies online
mexican border pharmacies shipping to usa buying prescription drugs in mexico and reputable mexican pharmacies online mexico pharmacies prescription drugs
cialis without a doctor’s prescription cialis without a doctor’s prescription or prescription drugs online without
https://www.livecmc.com/?lang=fr&id=Ld9efT&url=https://withoutprescription.guru:: non prescription ed drugs
levitra without a doctor prescription viagra without a doctor prescription and legal to buy prescription drugs from canada how to get prescription drugs without doctor
http://mexicopharm.shop/# purple pharmacy mexico price list
ed pills comparison erection pills viagra online male erection pills
natural remedies for ed best otc ed pills or the best ed pills
https://images.google.com.om/url?sa=t&url=https://edpills.icu natural ed remedies
ed remedies mens ed pills and ed medication pills erectile dysfunction
reputable indian pharmacies: top 10 pharmacies in india – indian pharmacy online
canadian world pharmacy best canadian pharmacy or canadian drug pharmacy
https://www.google.dm/url?q=https://canadapharm.top online canadian pharmacy review
prescription drugs canada buy online cheapest pharmacy canada and pharmacy wholesalers canada the canadian pharmacy
https://withoutprescription.guru/# viagra without a doctor prescription walmart
india pharmacy reputable indian online pharmacy indianpharmacy com
mexican mail order pharmacies: mexican pharmaceuticals online – buying prescription drugs in mexico
http://edpills.icu/# top erection pills
canadian pharmacy no rx needed canadian pharm top canadadrugpharmacy com
п»їbest mexican online pharmacies mexico pharmacies prescription drugs or buying from online mexican pharmacy
http://hir.ize.hu/click.php?id=251831&categ_id=7&url=http://mexicopharm.shop best online pharmacies in mexico
mexico drug stores pharmacies medication from mexico pharmacy and best online pharmacies in mexico pharmacies in mexico that ship to usa
medicine erectile dysfunction how to cure ed or best ed drugs
https://us.kindofbook.com/redirect.php/?red=https://edpills.icu best over the counter ed pills
ed drug prices ed medications and ed drugs list best ed drug
cheap essay help casino real money free play pala casino online
viagra without doctor prescription amazon: prescription meds without the prescriptions – buy prescription drugs online legally
term papers writing service help with essay buy suprax 200mg online
buy aspirin 75mg pill free slot games online slot games online
http://withoutprescription.guru/# viagra without a doctor prescription
terbinafine 250mg drug lamisil 250mg cost casino play
desyrel brand order suhagra 100mg pills buy clindamycin without a prescription
ceftin 250mg canada methocarbamol medication methocarbamol 500mg canada
order tadacip 20mg online buy indomethacin 50mg sale buy indomethacin paypal
nolvadex 20mg for sale betahistine online symbicort price
buy generic retin over the counter avanafil over the counter order avana 100mg without prescription
clindamycin brand order sildenafil 50mg buy sildenafil generic
lamictal 200mg usa purchase lamictal for sale nemazole uk
buy metronidazole for sale buy sulfamethoxazole for sale generic cephalexin 125mg
aurogra drug order sildenafil 100mg generic order estrace 1mg pills
diflucan 100mg price buy ampicillin 250mg online cheap where to buy cipro without a prescription
paper writing websites assignments for sale academic writing support
order spironolactone 25mg buy propecia sale order proscar 5mg
order motilium generic buy cheap tetracycline sumycin 500mg ca
oral tamsulosin simvastatin pills buy zocor without prescription
buy buspirone tablets zetia order cordarone 200mg over the counter
buy zantac 300mg how to get meloxicam without a prescription cheap celebrex
allopurinol cheap buy temovate cream buy crestor online cheap
sumatriptan online order where to buy levaquin without a prescription generic avodart 0.5mg
order generic nexium 20mg topiramate uk topamax tablet
buy azelastine sprayer buy azelastine nasal spray for sale avapro buy online
order pepcid 40mg online cheap order cozaar pill tacrolimus pills
buy orlistat online cheap order orlistat 120mg pill order diltiazem without prescription
where to buy medex without a prescription cheap warfarin order metoclopramide 10mg online cheap
pamelor 25 mg price pamelor canada order paracetamol 500mg for sale
buy generic amaryl online glimepiride 4mg cheap buy etoricoxib no prescription
buy inderal 20mg for sale plavix 150mg sale plavix cost
oral alendronate 35mg order alendronate without prescription furadantin us
baclofen 25mg pills toradol pills cheap ketorolac
На сайте caso-slots.com я нашел все, что нужно для идеального начала игры в онлайн казино – полный список популярных казино и даже список тех, где предлагают бонусы на первый депозит. Азарт впереди!
loratadine 10mg pills order ramipril 10mg online priligy 30mg sale
buy lioresal medication order lioresal generic toradol for sale
phenytoin price buy ditropan 2.5mg pill buy oxybutynin 5mg pills
buy cheap generic coversyl purchase perindopril generic order allegra generic
levitra canada cheap levitra 20mg buy tizanidine 2mg generic
methylprednisolone without a doctor prescription adalat 30mg over the counter order triamcinolone 10mg online cheap
cost clomiphene where can i buy azathioprine imuran buy online
roulette free augmentin 625mg for sale purchase levothroid
symmetrel oral amantadine pills avlosulfon 100mg ca
gambling online online gambling sites ivermectin 6mg tablets
san manuel casino online buy generic ventolin order ventolin inhalator generic
pantoprazole 40mg us order lisinopril 10mg online order pyridium 200mg for sale
playing poker online for money casinos online buy furosemide generic
order generic lipitor 80mg amlodipine 10mg usa norvasc 10mg oral
buy azipro 250mg pill azipro 250mg uk brand gabapentin 600mg
absorica order order absorica pill buy generic azithromycin for sale
order omnicef pills cheap cefdinir 300mg prevacid online order
purchase provigil online cheap order generic modafinil cost deltasone 40mg
cenforce 50mg without prescription where to buy aralen without a prescription chloroquine 250mg uk
buy tadalafil 40mg online buy cialis 5mg pills buy sildenafil 100mg pill
order telmisartan 20mg generic molnunat 200mg order molnupiravir 200mg sale
prilosec 10mg uk buy metoprolol tablets metoprolol 50mg ca
premarin 600 mg brand sildenafil 100mg sale real viagra pills
betahistine 16 mg generic buy probenecid cheap order probenecid 500 mg online cheap
purchase zovirax capecitabine over the counter buy rivastigmine pills for sale
pill enalapril bicalutamide online buy duphalac without a prescription
buy ferrous sulfate 100 mg without prescription buy generic betapace for sale betapace online buy
order pyridostigmine 60mg generic buy maxalt medication buy rizatriptan medication
prasugrel where to buy cost prasugrel 10 mg detrol buy online
cost monograph pletal usa buy pletal pills for sale
purchase florinef for sale buy aciphex without prescription order imodium 2mg generic
buy duphaston 10mg sale jardiance order cheap empagliflozin 25mg
dipyridamole 25mg pill buy plendil buy pravachol 10mg pills
order melatonin aygestin 5 mg over the counter danocrine 100mg generic
buy aspirin 75mg online cheap aspirin 75mg brand imiquad for sale
buy generic precose buy generic fulvicin order generic fulvicin 250 mg
buy minoxidil best ed pills at gnc where to buy otc ed pills
zaditor online buy order sinequan 75mg without prescription buy generic imipramine online
tadalafil generic name purchase cialis pills order sildenafil 100mg pill
fenofibrate 200mg pills buy fenofibrate 200mg fenofibrate pills