我想访问Javascript标记之外的Javascript变量值。
<img height="0" width="0" border="0" src="http://testing.com?merchantId=M1&orderNo=%%GLOBAL_OrderId%%&saleAmount=I want the Grand+Total Value here">
$conn = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
答案 0 :(得分:2)
您需要更新src
元素的img
属性。假设你给了img
一个id
(你没有,有其他方法可以选择它,但我保持简单):
<img id="the-image" height="0" width="0" border="0" src="http://testing.com?merchantId=M1&orderNo=%%GLOBAL_OrderId%%&saleAmount=I want the Grand+Total Value here">
然后:
function getprices(input) {
return input.match(/[0-9]+/g);
}
var subtotals = getprices('%%GLOBAL_OrderTotal%%'); // <=== Changed to `getprices`, was `get_getprices`
var Grand_total=subtotals[0];
var img = document.getElementById("the-image");
img.src = "http://testing.com?merchantId=M1&orderNo=%%GLOBAL_OrderId%%&saleAmount=" + Grand_total;
看起来Grand_total
将始终是一个数字,但对于可能不是的一般情况,请务必使用encodeURIComponent
(即使是img.src = "http://testing.com?merchantId=M1&orderNo=%%GLOBAL_OrderId%%&saleAmount=" + encodeURIComponent(Grand_total);
也不会造成任何伤害一个数字):
id
如果您未在img
上使用document.querySelector
,那很好,您可以通过getprices
使用任何CSS选择器。这得到了所有现代浏览器以及IE8的支持。
请注意,该代码存在其他问题,但至少readObject()
看起来相当可疑。
答案 1 :(得分:1)
您可以使用
document.getElementsByTagName("img")[***index of the image tag***].src = "<THE STRING>"+<THE VARIABLE>+"<THE REMAINING STRING>";
或为<img>
分配ID并使用
`document.getElementById(“ 图片的ID ”)。src =“”++“”;
答案 2 :(得分:1)
您需要做的就是在javascript
中将值分配给img的src$("#imgNeeded").attr("src",".../"+Globalvalue)
作为T.J.克劳德说。如果您的变量包含数字
以外的其他内容,请确保对URI进行编码答案 3 :(得分:1)
提供的方法共享的问题是,如果它们如何,您的图像将在更改前加载不需要的来源:
<html>
<head>
<script>
function getprices(input){return input.match(/[0-9]+/g)};
function changeSrc(){
var tE = document.querySelector("img[src*='saleAmount=']");
var tS = getprices('anyPrice1');
if (tE && tS) tE.src += encodeURIComponent(tS[0]);
};
</script>
</head>
<body onload = 'changeSrc()'>
<img height = '0' width = '0' border = '0' src = 'http://JUSTTOSHOWtesting.com?merchantId=M1&orderNo=%%GLOBAL_OrderId%%&saleAmount=' onerror = 'console.log(this.src)'>
</body>
您的控制台将记录两个电话:
- GET http://justtoshowtesting.com/?merchantId=M1&orderNo=%%GLOBAL_OrderId%%&saleAmount= net::ERR_NAME_NOT_RESOLVED
- GET http://justtoshowtesting.com/?merchantId=M1&orderNo=%%GLOBAL_OrderId%%&saleAmount=1 net::ERR_NAME_NOT_RESOLVED
所以你可以做的就是放置一个占位符,直到你得到你需要的来源:
<html>
<head>
<script>
function getprices(input){return input.match(/[0-9]+/g)};
function createSrc(){
var tE = document.querySelector("ins[src*='saleAmount=']");
var tS = getprices('anyPrice1');
if (tE && tS){
var tI = document.getElementById('iPlaceholder');
if (!tI){
tI = document.createElement('img');
tI.id = 'iPlaceholder';
tI.onerror = function(){console.log(this.src)};
tE.parentNode.insertBefore(tI, tE.nextSibling);
};
tI.src = tE.getAttribute('src') + encodeURIComponent(tS[0]);
};
};
</script>
</head>
<body onload = 'createSrc()'>
<ins src = 'http://JUSTTOSHOWtesting.com?merchantId=M1&orderNo=%%GLOBAL_OrderId%%&saleAmount='></ins>
</body>
</html>
现在你的控制台只会记录一个电话:
- GET http://justtoshowtesting.com/?merchantId=M1&orderNo=%%GLOBAL_OrderId%%&saleAmount=1 net::ERR_NAME_NOT_RESOLVED