我正在使用动态,我正在尝试从表单中提取变量并使用它来创建动态URL这是我的代码:
<html>
<head>
<meta charset="utf-8">
<script src="new_/jquery.js"></script>
<script>
$( document ).ready(function() {
var $productid = attr("src",parent.window.Xrm.Page.getAttribute('new_productid').getValue());
});
</script>
</head>
<body style="word-wrap: break-word;">
<div style="align: center;">
<script type="text/javascript">
document.write('<a href="http://www.mywebsite.com/products/'+productid+'">Link to some site</a>');
</script>
</div>
</body>
</html>
谁能看到我做错了什么?
答案 0 :(得分:1)
你有3个问题:
$productid
vs productid
$productid
在回调函数中声明,因此与document.write调用的范围不同$productid
在全球范围内,您的document.write
来电也很可能会在$(document).ready
回调之前发生,因此$productid
仍然不会包含您期望的值。< / LI>
醇>
所以你的js在准备好的回调中工作,并在你的html中放置一个占位符锚点,一旦它准备就可以改变
HTML
<div style="align: center;">
<a href="#" id="linkToChange">Some text</a>
</div>
JS
$( document ).ready(function() {
var $productid = attr("src",parent.window.
Xrm.Page.
getAttribute('new_productid').getValue());
$("#linkToChange").attr("href","http://www.mywebsite.com/products/'+$productid);
});
也不确定你所调用的函数attr
是什么,因为你没有在任何地方定义它,所以你很可能也会因此而出错
答案 1 :(得分:0)
您的脚本在变量被声明之前运行,您在jQuery ready()
函数中声明了var,这是在执行脚本块之后发生的。将js脚本移动到一个函数,并在ready()
函数中声明var后调用它。